已知二叉树的前序和中序遍历序列,以此重建二叉树。 重建二叉树,必须知道前序和中序序列,其他组合都不行。 public class RebuildTree { class Node{ int nodeValue; &nbs…
分类:算法
找到数组中第K大的数
快速排序法中的index就是这个数在数组中的排序,因此用快速排序即可很容易做到 / 找到了index即代表找到了第index大的数,同时将该数放到了这个位置(数组中的index位置)。 挖坑法、前后指针、左右指针子程序都…
awesome-algorithms 算法
Awesome Algorithms A curated list of awesome places to learn and/or practice algorithms. Inspired by awes…
【LeetCode】980. Unique Paths III解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetcode.com/pro…
P1338末日的传说
#### 末日的传说 题目 P1338末日的传说 题意 构造一个字典序最小的逆序对数为 M M M的序列 分析 a n a_n an是一个序列, f ( a n ) f(a_n) f(an)是它的逆序对数,则满足: …
关于Java ArrayList
每次刷题,都被这个东西坑,很烦,特此记录。 int[] 转 List<Integer> 转不了 需要Integer[] 转 List<Integer>。 直接用int[] 转过去 是List<…
分治算法(三)快速排序
1.快速排序的思想 (1)分解:先从数列中取出一个元素作为基准元素,以基准元素为标准,将问题分解为两个子序列,使小于或等于基准元素的子序列位于左侧,使大于基准元素的子序列位于右侧。 (2)治理:对两个子序列分别递归调用快…
【LeetCode】974. Subarray Sums Divisible by K 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 前缀和求余 日期 题目地址:https://leetcode.…
leetcode 147. Insertion Sort List
算法分析: 这是一个基于链表的插入排序,同样地设置一个虚拟的头结点vmNode,遍历整个链表时,链表中的每个节点与以vmNode为头节点的链表进行比较,找到插入位置,找到后将该节点插入,最终返回vmNode.next。整…
LeetCode Hard 128 最长连续子序列 Python
def longestConsecutive(self, nums): """ Solution Method 算法:集合 思路: 其实题解的思路挺朴素的,就是将nums转化为集合,然后使得查找时间退化为O1 只在num…
LeetCode:978. Longest Turbulent Subarray - Python
978. 最长湍流子数组 问题描述: 当 A的子数组A[i], A[i+1], ..., A[j]满足下列条件时,我们称其为湍流子数组: 若i <= k < j,当 k为奇数时, A[k] > A[k+…
leetcode-889-Construct Binary Tree from Preorder and Postorder Traversal
Get the pattern from it, 1) We know that in pre-order: [root, left, right], in post-order: [left, right, root]…