
LeetCode
onesafe
这个作者很懒,什么都没留下…
展开
-
Two Sum
给一个整数数组,找到其中的两个数,加起来等于我们给定的另一个数,唯一解 返回两个数的下标(从1开始算,第一个小于第二个下标) 输入:numbers={2, 7, 11, 15}, target=9 输出:index1=1, index2=2 分析: 一开始想着肯定是两次循环,然后两个数的和加起来等于target,但是这样明显超时了 然后想着先排序,排完序之后效率可以提高原创 2014-09-12 20:51:52 · 547 阅读 · 0 评论 -
Median of Two Sorted Arrays
题目:有两个有序数组A[m],B[n];找到两个有序数组的中间值。时间fuzha原创 2014-09-12 22:23:15 · 592 阅读 · 0 评论 -
Longest Substring Without Repeating Characters
题目: 给一个字符串,找到最长的子串,子串不包括重复字符,例如:"abcabcbb"的最长子串就是"abc",长度为3."bbbbb"的最长子串是"b",长度为1 分析: 用哈希的方法,从前往后扫描一遍,最长子串中的字符不能重复,所以扫描时遇到的字符如果在之前出现过,那么说明此时之前扫描过的字符串有可能是最长的子串。又因为子串不能重复,所以找到之前扫描过的字符串中与当前相等的字符原创 2014-09-13 11:54:25 · 476 阅读 · 0 评论 -
Add Two Numbers
题目: 给两个单链表代表两个非负数字,每个数字都是逆序存储,并且单链表每个节点存储一个数(0-9),将这两个数相加,返回一个链表 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 分析: 遍历两个链表,从链表中分别取出数字,相加,如果大于等于10则进一位,十位数也是,如果十位数也大于等于10则十位数上也要进一位。如果链表长原创 2014-09-13 16:35:59 · 621 阅读 · 0 评论 -
Longest Palindromic Substring
题目: 给一个字符串s,找到s中最长的回文子串,假定s的最大长度为1000,最长回文子串唯一 分析: 有一个专门针对回文子串的算法,其时间复杂度为O(n),这就是manacher算法。把原串每个字符中间用一个没出现过的字符#分隔开来(非常巧妙的将奇数长度回文串与偶数长度回文串统一起来考虑了),算法的核心是用辅助数组p记录以每个字符为核心的最长回文字符串的半径,也就是p[i]记录了原创 2014-09-15 19:50:03 · 462 阅读 · 0 评论