摘要: https://oj.leetcode.com/problems/median-of-two-sorted-arrays/合并两个有序表,MergeSort的一部分的那个算法。幸运的是stl提供了merge函数。复习一下这个函数的签名:merge(first1,end1,first2,end2,de... 阅读全文
posted @ 2014-10-03 19:38 zombies 阅读(148) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/divide-two-integers/不使用乘除实现除法。那么能够使用的就是+-和移位运算。首先检查边界和符号。如果用一直减的方法实现,会有可能除数很小导致超时。所以必须借助移位运算减少减法操作数目。我的想法是,首先通过被除数右移计... 阅读全文
posted @ 2014-10-03 17:41 zombies 阅读(195) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/maximum-product-subarray/题目非常简单,就是要AC代码量不小,需要保证一次性正确率很难。考虑一个数组最大乘积可能的几种情况:1)0,数组中有0,且其他部分都乘积比0小。这种情况可以把问题分解成一系列0隔开的子数... 阅读全文
posted @ 2014-10-03 15:49 zombies 阅读(232) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/word-break-ii/首先这个问题显然是可以利用以前搜索的结果,所以可以看出是一个具有DP性质的递推关系的题目。f(int p):后n-p个单词已经被断句的条件下,前p个所有组成的断句结果都有哪些,我们还需要一个数组dpf[],... 阅读全文
posted @ 2014-10-03 14:51 zombies 阅读(228) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/decode-ways/一个DP计数的问题。解决思路就是假定后n-p个数的译码方式确定了,求前p个数的译码方式。这样对s[p-1],s[p-2]进行合理性检查并决定能否规约到子问题即可。我用了Memo的方法,DP也是一样的。class... 阅读全文
posted @ 2014-10-03 10:54 zombies 阅读(160) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/string-to-integer-atoi/这道题可以看做valid number的变种。首先按照正则表达式^\s*[+,-]?[0-9]+*$构造出转换表。然后根据输入进行状态机转换。在状态转换过程中将数字和符号分别存储起来,最后... 阅读全文
posted @ 2014-10-03 10:35 zombies 阅读(343) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/surrounded-regions/很简单的一道图论题。BFS或者DFS都可解。对不同的连通域使用一个color每次进行标记扩散,再根据是否遍历过程遇到了边界点来判断是否为sorround。在不使用额外内存的限制下,通过修改boar... 阅读全文
posted @ 2014-10-03 01:36 zombies 阅读(208) 评论(0) 推荐(0) 编辑