简述各题
4.Median of Two Sorted Arrays:二分法,注意细节,各种-1, + 1。
10.Regular Expression Matching: 注意为*时的三种表达,为多个字母,一个字母和空。
66.Plus One: 注意carry = 0的时候就可以结束了。
31.Next Permutation: 原理我始终没搞明白,但是好神奇,有空问问。reverse的时候要包括second。
274.H-Index: 注意j=len-i-1,注意条件是j>=citations[i]。注意各种细节。
360.Sort Transformed Array: two pointers,注意 a >=0 和a<0时输入到result的时候顺序得变,两个得数的判定情况也得变。
280.Wiggle Sort: 算法精妙,注意in-place。注意观察数的规律,奇数位需要比左边的偶数位的大,偶数位的要比左边奇数位的小。
281.Wiggle Sort II:
139.Word Break:
140.Word Break II:!!!
133.Clone Graph:
208.Implement Trie:
314.Binary Tree Vertical Order Traversal
146.LRU Cache:
460.LFU Cache:
312.Burst Balloons:
200.Number of Islands:
201.Number of IslandsII:
293.Flip Game:
294.Flip Game II:
375.Guess Number Higher or Lower:
376.Guess Number Higher or LowerII: !!!
224.Basic Calculator:
282.Expression Add Operators:
320.Generalized Abbreviation:注意怎样递归,没算复杂度
22.Generate Parentheses: !!!注意怎样递归,没算复杂度
239.Search a 2D Matrix II: 二分法 还没做
240.Search a 2D Matrix II: 从右上或左下角开始。
288.Unique Word Abbreviation: 注意各种情况,字典里本来就有重复,以及字典里只有一个相同的。
329.Longest Increasing Path in a Matrix: 用DP,要用一个数组记住已经算出节点的最大值。普通dfs会超时。
246.Strobogrammatic Number: 注意string的创建方法, 可用Arrays.asList("00", "11", "88",“696”) .
247.Strobogrammatic Number II:一层一层剥,可以重写一遍,注意0的加入。
20.Valid Parentheses: 注意stack是空的情况。
22.Generate Parentheses: 注意右括号要比左括号少才能加。
490.The Maze: 注意dfs的while里多加一次,要减掉。
505.The Maze II:visited变为distance,当值更小时更新。bfs可用PQ。
323.Number of Connected Components in an Undirected Graph
314.Binary Tree Vertical Order Traversal
394.Decode String: 俩stack,先放空的,push结果时要加上之前stack里的。
377.Combination Sum IV:仔细想想怎么做,公式!初始化!
316.Remove Duplicate Letters:注是subsequence,注意判断条件。
354.Russian Doll Envelopes:注意Arrays.binarySearch的用法。
474.Ones and Zeroes: DP,注意公式,注意一定要从后往前推。
503.Next Greater Element II:stack, 走两遍,第一遍倒着走第二遍顺着走。
501.Find Mode in Binary Search Tree: 注意list.clear()。
298.Binary Tree Longest Consecutive Sequence
494.Target Sum
485.Max Consecutive Ones
487.Max Consecutive Ones II
475.Heaters
498.Diagonal Traverse
486.Predict the Winner
310.Minimum Height Trees: 循环:n>2,注意iterator.next(),set不能转int。
239.Sliding Window Maximum: deque用法,先判断deque是否为空。
54.Spiral Matrix
56.Merge Intervals
23.Merge K sorted Lists
284.Peeking Iterator: 注意全局变量和next()方法的区别。
480.Sliding Window Median: 注意(double)加法和随时平衡两个堆。
361.Bomb Enemy:行不用数组因为可一直更新,注意算行列敌人时初始化。
341.Flatten Nested List Iterator: 用stack,注意while
281.Zigzag Iterator:注意iterator用法。
269.Alien Dictionary: 没写完太长,回忆topo sort,前一个数建图
380.Insert Delete GetRandom O(1)
228.Summary Ranges
370.Range Addition
295.Find Median from Data Stream:用Collections.reverseOrder或“-”
259.3Sum Smaller: res += right - left,中间一串数都是。
346.Moving Average from Data Stream
50.Pow(x, n)
286.Walls and Gates
351.Android Unlock Patterns
200.Number of Islands
305.Number of Islands II
271.Encode and Decode Strings
173.Binary Search Tree Iterator
57.Insert Interval
163.Missing Ranges
218.The Skyline Problem
42.Trapping Rain Water
407.Trapping Rain Water II:从外往里,新加点要和当前cell.height比较取大。
297.Serialize and Deserialize Binary Tree
406.Queue Reconstruction by Height:排好序后顺序按p[2]位置插入。
391.Perfect Rectangle
471.Encode String with Shortest Length:看一下kmp算法优化
465.Optimal Account Balancing: dfs,一个一个来,前一个人加完就不用算了
159.Longest Substring with At Most Two Distinct Characters: 类似topo sort
340.Longest Substring with At Most K Distinct Characters
411.Minimum Unique Word Abbreviation:太长没写 有空看
336.Palindrome Pairs
408.Valid Word Abbreviation:num的表示,最后的相加,比较对应位。
353.Design Snake Game: 注意吃进去和减掉,从头吃从尾巴减,先减。
362.Design Hit Counter: 注意循环变换,timestamp-times[i]< 300
155.Min Stack: 注意minStack为空的情况。
251.Flatten 2D Vector: 注意hasNext和next运行完后x和y的值。
276.Paint Fence:当前不能和前一个一样或不能和再前一个一样。
307.Range Sum Query - Mutable:学习建线段树再写一次。
308.Range Sum Query 2D - Mutable:看update和sum中计算最低位的方法。http://www.cnblogs.com/grandyang/p/4985506.html
348.Design Tic-Tac-Toe
400.Nth Digit???没做好
253.Meeting Rooms II:注意heap的初始化。
345.Reverse Vowels of a String:看了一眼没做可以想想
228.Summary Ranges
293.Flip Game
294.Flip Game II:注意map方法递归if (!helper(t, map))
128.Longest Consecutive Sequence: 注意set的删减
289.Game of Life:在左边放第二状态然后右移。注意计算时不能出界。
369.Plus One Linked List:注意一定要新建Node,carry放node.next
162.Find Peak Element:num[-1]=num[n]=-∞,和左右比较即可。
309.Best Time to Buy and Sell Stock with Cooldown:再做。
356.Line Reflection: 看清定义,map的value为set。
447.Number of Boomerangs: res+=val*(val - 1)和map.clear();
358.Rearrange String k Distance Apart:waitQueue先加后判断count是否为0
417.Pacific Atlantic Water Flow
326.Power of Three: 机智的做法,取最大取余,可以记一下
231.Power of Two: Integer.bitCount(n) == 1
261.Graph Valid Tree:看一下树的定义,注意判断是否为cycle。
257.Binary Tree Paths: 注意stringBuilder的backtracking方法
359.Logger Rate Limiter
389.Find the Difference: 可以再想一下,用亦或做。
317.Shortest Distance from All Buildings
425.Word Squares
331.Verify Preorder Serialization of a Binary Tree:while循环外push。
422.Valid Word Square: 注意先看有没有超过length。
493.Reverse Pairs:有空看merge sort做法。
315.Count of Smaller Numbers After Self
482.License Key Formatting