摘要:
数组的题常用方法 :排序、最大值指针边走边找、最小值指针边走边找,数组的其他指针位置—顺序遍历, 逆序遍历,其他指针与最大值指针比较的后果或最小值指针 先想排序能否做: Stack 画图: 利用相对位置和大小pop找到最左边的位置, 和最右边的位置, 利用栈内的元素都是最小的特点, 找到要排序的su 阅读全文
摘要:
递归的题分为考察: 分治? 先序? 中序? 先序输入值? 全局辅助值? 全局结果值? 分治法(后序遍历), 先序输入值, 后序结果值 + 叶结点(叶结点也要操作 sum * 10 类似 513. Find Bottom Left Tree Value中的deep ) 这是一道树的题目,一般使用递归来 阅读全文
摘要:
现在开始考bfs 了吗, 根据size办事,分情况了 dfs: 先序遍历 + 树的深度, 跟此题类似: 199 Binary Tree Right Side View 阅读全文
摘要:
经典bfs, 不多说 阅读全文
摘要:
Max Stack: 实现用ddl + treeset. Node n = set.first() 阅读全文
摘要:
一个dp,f(i,j)表示前i个house都paint了且第i个house paint成color_j的最小cost。 背包问题同 Minimum Adjustment Cost Better Solution: O(N) time, O(1) space The basic idea is whe 阅读全文
摘要:
这道题要看出是背包问题,不容易,跟FB一面 paint house很像,比那个难一点 定义res[i][j] 表示前 i个number with 最后一个number是j,这样的minimum adjusting cost 阅读全文
摘要:
状态: 一维的肯定不行, 二维的三个变量轮着试了一下也不行, 干脆把三维的都装上, 方程: 用遍历到当前的状态时, 用不用的上当前的元素(如何判断, 根据题意和当前元素的有无对另一维状态变量的改变来判断)来划分情况, 然后看看是状态相加还是 求最大, 还是怎么的 初始化边界点很重要: 注意size都 阅读全文
摘要:
Given n unique integers, number k (1> kSumII(int[] A, int k, int target) { // write your code here ArrayList> ans = new ArrayList(); ArrayList list = new ArrayList(); ... 阅读全文
摘要:
状态和状态方程的思路和1 一样, 当前背包加用vs 不用, 找到与题意链接的一个状态, 再找他的对立面 一维 阅读全文