leetcode
文章平均质量分 72
fwql
这个作者很懒,什么都没留下…
展开
-
【Leetcode】 Divide Two Integers
我第一次刷这题,超时,是看了discuss才ac的,现在第二遍做,能有ac的思路了,不知道是真理解了这里的trick,还是潜意识里记住了算法。 因为不能用乘除去模,所以基本想法就是:divisor(除数)不断累加,直到大于等于dividend(被除数)。但是如果按照这样固定步长(每次加divisor本身),会超时,所以---> 【双倍累加】,并且,当双倍累加的和大于dividend时,要用两原创 2015-12-01 09:20:56 · 178 阅读 · 0 评论 -
【LeetCode】 Reverse Words in a String
要求:in-place,extra space o(1) 【我的想法是】 1.先将收尾多余的空格去掉; 2. 遍历一次字符串,我要做两件事: a)每识别出一个单词,就把这个单词reverse. 比如:我识别出apple,就reverse成elppa; b)去掉两个单词之间的多余空格:如果识别出空格,就把该空格后面多余的空格删掉 3. 将整个字符串reverse一下。 举例说来原创 2015-12-02 09:12:02 · 210 阅读 · 0 评论 -
【LeetCode】Surrounded Region
Surrounded Region 跟 Num of Islands 同类思路。唯一不同的是,对四条边的边界点的判定标准不同。前者认为,边界点不是被包围的点,后者认为是。 我一直都不习惯递归的算法,所以很多遍历题都用了stack或者queue来一步一步遍历。 这题的思路是:你可以选择检测被包围的区域,也可以选择不被包围的区域。显然,由于不被包围的区域都是与四周边界点相关的,所以后者的速度更快些原创 2015-12-02 09:30:35 · 217 阅读 · 0 评论 -
【LeetCode】Decode Ways
动态规划 因为v的下标跟s的下标相差1,为了表述清楚,我一律按照“第i个字符”这种说法,其中i: 1~s.size() v[i]表示以第i个字符结尾的子串,共有多少种decode ways: v[0]=1; v[i]=v[i-1] 当s[i]: '1'~'9' 且 s[i-1]s[i] !=10~26 或 v[i]=v[i-2] 当s[i]=='0' 且 s[i-1]s[i]==原创 2015-12-02 14:12:26 · 172 阅读 · 0 评论 -
【LeetCode】Integer to English Words
其实这题并不难,初中英语学好的童鞋们,都知道trick是什么。但是,细节处比较多,比如说,我后来就focus在空格的增删上。 【我的思路是】 1. 建好hash表。 hash1 : 1~19,20,30,40,50,60,70,80,90 (second的值就不一一写明了) hash2: [0,""], [1,"Thousand"], [2,"Million"}, [3,"Billion原创 2015-12-02 21:40:58 · 214 阅读 · 0 评论