摘要:
Algorithm: 643: Maximum Average Subarray I correct before optimize 先能正确的写出来,不要一开始想太多,比如这一题,因为思路简单,一开始就想着只用一个循环和如何精简合并分支条件,结果边界条件混乱,多次失败才过...当然,最后看答案这里 阅读全文
摘要:
Algorithm: 53: Maximum Subarray 对无后效性的理解:逻辑、条件和限制都要体现在某种设计的状态中,并且后续的状态都从前面已有状态中转换得出,不能依赖其他内容(如果依赖也要设计到状态中),已经有的状态不会被后面的状态所改变(后面的会用前面的但不会改变前面的),有时存在状态压 阅读全文
摘要:
Algorithm: 22: Generate Parentheses 39: Combination Sum 40: Combination Sum II 46: Permutations 47: Permutations II 328: Odd Even Linked List 本周集中精力多做 阅读全文
摘要:
Algorithm: 200: Number of Islands 547: Friend Circles 都可以使用 Flood Fill 算法,其中 DFS 最为直观,注意其中 visited 可以用布尔数组提高性能,此外 BFS 和 UnionFind 也可以,尤其是第二题使用 UnionFi 阅读全文
摘要:
Algorithm: 129: Sum Root to Leaf Numbers 463: Island Perimeter 都比较容易,注意第一题递归终止条件中只有当前节点是叶子结点才需要累加,避免重复计算。 Review: Fixing Linux filesystem performance 阅读全文
摘要:
Algorithm: 94: Binary Tree Inorder Traversal 530: Minimum Absolute Difference in BST 使用递归实现二叉树的前中后序遍历非常容易,进阶要求使用循环则麻烦一些,手动操作栈需要注意逻辑组织,官方题解更为简洁但是更难理解,需 阅读全文
摘要:
Algorithm: 622: Design Circular Queue 环形队列(Circular Queue,Ring Buffer)是一种性能更好的队列实现,相比链表对cpu缓存更加友好,相比一般数组队列避免了数据搬移。在实现的过程中需要两个pos,分别是生产者p1和消费者p2(具体p1是下 阅读全文
摘要:
Algorithm: 15: 3Sum (Medium) 18: 4Sum (Medium) 167: Two Sum II - Input array is sorted (Easy) 一开始直接尝试4Sum一直找不到思路,看了答案才明白原来就是在3Sum基础上再循环一次,确实是比较无趣的一题。相 阅读全文
摘要:
Algorithm: 117: Populating Next Right Pointers in Each Node II (Medium) 填充二叉树的各个节点的下一同层节点。这道题有个 Follow up:You may only use constant extra space. 我在开始一 阅读全文
摘要:
Algorithm: 538: Convert BST to Greater Tree (Easy) 利用BST的中序遍历可以排序这一特性,在遍历时先右后左就可以实现逆序,再累加即可。 int sum = 0; public TreeNode convertBST(TreeNode root) { 阅读全文