摘要: 原题地址DFS,跟求子集合的方法类似,对于任意一个元素,要么选,要么不选。代码: 1 vector > res; 2 3 void solve(vector ans, int n, int curr, int left) { 4 if (left == 0) 5 res.push_ba... 阅读全文
posted @ 2015-01-25 15:36 李舜阳 阅读(124) 评论(0) 推荐(0)
摘要: 原题地址二进制码 -> 格雷码:从最右边起,依次与左边相邻位异或,最左边一位不变。例如:二进制: 1 0 0 1 1 1 0 |\|\|\|\|\|\| 格雷码: 1 1 0 1 0 0 1从二进制到格雷码有一个残暴公式: a ^ (a 二进制码:从左边第二位开始,依次与左边相邻已经解... 阅读全文
posted @ 2015-01-25 15:16 李舜阳 阅读(135) 评论(0) 推荐(0)
摘要: 原题地址《Cracking the Code》一书中出现过这道题,那里面提到了多种解法,这里用最简单的枚举法。DFS枚举,令leftRemain表示当前还剩下几个"("可用,rightRemain表示当前还剩下几个")"可用。如果leftRemain > 0,那么总可以放一个"("如果leftRem... 阅读全文
posted @ 2015-01-25 13:57 李舜阳 阅读(172) 评论(0) 推荐(0)
摘要: 原题地址很有意思的一道题,二分搜索求极值。题目中已经说明num[i] != num[i+1],即相邻元素不可能相等,所以相邻元素间的大小关系要么是大于,要么是小于,这就是二分搜索的判断条件。假设左边界是l,右边界是r,中点m=(l+r)/2如果num[m]比左右两边都大,那么num[m]就已经是极值... 阅读全文
posted @ 2015-01-25 13:40 李舜阳 阅读(177) 评论(0) 推荐(0)
摘要: 原题地址以前可以用DP枚举所有回文串,但是Leetcode后来增加了几组大数据,用DP会超时。什么!用DP都超时了??那怎么办?答:二分法尝试可能的回文串长度,直到找到最大值需要注意的是,假设现在已经验证了长度为length的回文串不存在,传统的二分法就会去尝试长度为length/2的回文串是否存在... 阅读全文
posted @ 2015-01-24 19:40 李舜阳 阅读(204) 评论(0) 推荐(0)
摘要: 原题地址1. 把所有与边界联通的"O"替换成别的字符,比如"#"2. 把剩下的所有"O"替换成"X"3. 把所有与边界联通的"#"替换成"X"代码: 1 void replace(vector > &board, int i, int j, char before, char after) { 2 ... 阅读全文
posted @ 2015-01-24 17:42 李舜阳 阅读(195) 评论(0) 推荐(0)
摘要: 原题地址非常有技巧性的一道题,虽然本质上仍然是搜索+回溯,但关键是如何处理模式串里的多余的*,如果处理的不好就超时了。基本的搜索+回溯算法是这样的,对于原串s和模式串p,依次遍历其字符:(a) 如果p[j]="*",依次将p[j+1..p.length]和s[i..s.length]、s[i+1..... 阅读全文
posted @ 2015-01-24 16:19 李舜阳 阅读(1604) 评论(0) 推荐(0)
摘要: 原题地址非常有技巧的一道题,如果没有接触过类似题目或没有任何提示的情况下想出来很困难,因为题目要求O(1)的空间复杂度既然是O(1)的空间复杂度,自然要用到原数组了。解法是:1. 遍历每个数组元素,把元素都交换到正确的位置上。比如发现A[3] = 5,则交换A[5]和A[3],让A[5]=5。2. ... 阅读全文
posted @ 2015-01-24 15:36 李舜阳 阅读(168) 评论(0) 推荐(0)
摘要: 原题地址不妨手动模拟一下,观察是否有规律可寻。假设从位置0开始,我们有一个矩形条向右扩展,我们遇到了第二个矩形条,假设这个矩形条比第一个矮:我们继续向右扩展,直到遇到比第一个矩形条高(或者相等)的矩形条:那么显然,蓝色的部分就是装水的部分,把这部分累加到最终的结果中然后,以新发现的这个矩形条为左边界... 阅读全文
posted @ 2015-01-24 15:00 李舜阳 阅读(341) 评论(0) 推荐(0)
摘要: 原题地址字典序模拟问题,枚举num的所有字典序。假设已知序列seq,求下一个字典序序列:1. 从序列seq右侧向左寻找第一个顺序对,即对于位置i,有seq[i] seq[i]。肯定能找到这样一个j,因为j至少可以是i+13. 交换seq[i]和seq[j]4. 将seq在位置i之后的部分倒置,即将... 阅读全文
posted @ 2015-01-24 14:01 李舜阳 阅读(379) 评论(0) 推荐(0)