LeetCode解题源代码链接集锦二

15.Sort List--链表在O(nlogn),常数空间内完成排序

关键点:中间分裂链表,采用双指针归并排序

      中间分裂链表的方法:快慢指针,快指针走两步,这样就可以找到中间的了

C++:http://blog.csdn.net/jiadebin890724/article/details/21334059

Java:http://blog.csdn.net/worldwindjp/article/details/18986737

16.Valid Palindrome--合法回文字符串

关键点:左右指针,一边扫描

C++:http://blog.csdn.net/jiadebin890724/article/details/21334059

Java:http://www.programcreek.com/2013/01/leetcode-valid-palindrome-java/(两种解法,正则表达式的比较好)

17.Sqrt(x)--求开方

关键点:二分查找,这题需要注意声明的长度需要是long

C++:http://www.cnblogs.com/AnnieKim/archive/2013/04/18/3028607.html(有个牛顿迭代法可以一看)

Java:https://github.com/azheanda/leetcode/blob/master/sqrt%28x%29.java

18.Implement strStr()--自实现字符串匹配库函数

关键点:暴力还是KMP算法,还有Boyer-Mooer,Robin-Karp算法

C++:http://blog.csdn.net/feliciafay/article/details/17747539(o(m+n))

Java:http://blog.csdn.net/beiyetengqing/article/details/8458274(暴力O(m*n))

19.Add Binary--二进制相加

关键点:循环判断,注意进位 (难度比较小,如果判断的话,注意二进制一位值范围0~3

C++:http://www.cnblogs.com/remlostime/archive/2012/10/27/2742717.html

Java:http://blog.csdn.net/pickless/article/details/9952747

20.Longest Substring Without Repeating Characters--没有重复字母的最长子串

关键点:双指针扫描,java的有个内层循环hash做法

C++:http://blog.sina.com.cn/s/blog_60b5450101017xqh.html

Java:http://www.programcreek.com/2013/02/leetcode-longest-substring-without-repeating-characters-java/

21.Longest Common Prefix--发现字符串数组的公共前缀

关键点:明确公共前缀的概念是指数组所有的字符串都已某些字符开头,没啥方法,找到最短的字符串,然后以数组长度和最短字符串长度双重循环

    维基百科上说有O(nlogn)和线性的时间,链接http://en.wikipedia.org/wiki/LCP_array

C++:http://blog.csdn.net/feliciafay/article/details/17295271

Java:http://www.lifeincode.net/programming/leetcode-longest-common-prefix-java/

22.Longest Valid Parentheses--最长合法的括号长度

关键点:最笨的可以多重循环的做,不然可以声明栈只存取(,然后一个变量记录起始的位置,一个记录当前最长的括号长度

C++:http://blog.csdn.net/cfc1243570631/article/details/9304525

Java:http://www.cnblogs.com/lichen782/archive/2013/07/06/leetcode_Longest_Valid_Parentheses.html

     http://blog.csdn.net/jellyyin/article/details/9887959

23.Longest Consecutive Sequence--最长正连续数序列

关键点:hash一遍,然后向左向右加一减一找,找过就从hash表删除,可以线性时间完成;排完序然后找也是可以的,但是O(nlogn)

C++:http://www.cnblogs.com/x1957/archive/2013/08/22/3274274.html

Java:http://xingxjhui.blog.163.com/blog/static/215545164201311281338854/

24.Insertion Sort List--链表的插入排序

关键点:双重循环,注意边界情况考虑

C++:http://blog.csdn.net/ljsspace/article/details/6619659

Java:http://www.programcreek.com/2012/11/leetcode-solution-sort-a-linked-list-using-insertion-sort-in-java/

posted @ 2014-08-05 22:48  码农-CR7  阅读(364)  评论(0编辑  收藏  举报