1.Remove Duplicates from Sorted Array
http://blog.csdn.net/chencheng126/article/details/38821083
2.Search in Rotated Sorted Array
二分查找的进阶,不错的题。在二分查找前,先要确定一下哪一部分是有序数组。
http://blog.csdn.net/chencheng126/article/details/38822681
3.Median of Two Sorted Arrays
用到了二分查找,还有递归。
这是一个好题目,可以一般化为求两个有序数组中,第K大的元素。
实现的方法有很多种,大多数是O(m+n),但题目要求的是O(long(m+n)),这就是要求用到二分查找。实现中,我们还用到了递归。
http://blog.csdn.net/chencheng126/article/details/38823029
4.Longest Consecutive Sequence
如果是先排序,那么时间复杂度是O(nlogn)。要想O(n),需要用到hash,记录每个元素是否使用过。对每个元素,以该元素为中心,左右扩张,直到不连续,记录最大的长度。
http://blog.csdn.net/chencheng126/article/details/38843489
5.Two sum/Three sum/Four sum.....
这是一个系列,在一个整型数组中找出几个数的和等于一个目标数。
对于tow sum,可以采用hash的办法,时间复杂度是O(n)
对于其它k-sum,可以采用先排序,然后左右夹逼的办法。时间复杂度是O(n^k-1)
http://blog.csdn.net/chencheng126/article/details/38849573
6.Next Permutation
下一个排列。有一个固定的思路,详见链接。要注意细节。
http://blog.csdn.net/chencheng126/article/details/38900165
7.Valid Sudoku
考虑行,列,每个子方格。用一个9位的bool数组,表示是否used。
http://blog.csdn.net/chencheng126/article/details/38900535
8.Trapping Rain Water
http://blog.csdn.net/chencheng126/article/details/38926513
9.Rotate Image
先按照对角线翻一次,然后按照水平中线再翻转一次。
http://blog.csdn.net/chencheng126/article/details/38927927
10.Climbing Stairs
f(n)表示爬到n层楼梯的方法。f(n) = f(n-1)+f(n-2)。用迭代的方式实现。
http://blog.csdn.net/chencheng126/article/details/38927997
11.Gas station
我觉得一道很简短精巧的题。
http://blog.csdn.net/chencheng126/article/details/38979473
12.Candy
很有趣的一道题。解题思路清楚,化繁为简。
http://blog.csdn.net/chencheng126/article/details/38979979
13.Single Number
用异或。
http://blog.csdn.net/chencheng126/article/details/38980049
14.Merge sorted array
从数组末尾往前操作,可以省去很多操作
http://blog.csdn.net/chencheng126/article/details/39293825