摘要: 题意是求最大子序列和 input:[−2,1,−3,4,−1,2,1,−5,4] ans:6 [4,−1,2,1] 下面给出三种不同时间复杂度的解法。一. O(N^2) 两个point,一个指向子序列的头,一个指向子序列的尾,两层循环求该子序列的和。public class Sol... 阅读全文
posted @ 2016-10-10 16:31 水煮海鲜 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 全子集问题的三种解法:1.回溯法 回溯是经典的解法,有固定的模板,用递归实现。class Solution {public: vector> subsets(vector& nums) { sort(nums.begin(), nums.end()); ... 阅读全文
posted @ 2016-10-10 16:30 水煮海鲜 阅读(356) 评论(0) 推荐(0) 编辑
摘要: [ [2], [3,4], [6,5,7], [4,1,8,3]]一、空间复杂度O(n^2) 一共有n行,那么所占空间为n*(n+1)/2的一维数组,从上往下填表,由于下一个值的得出需要上一个值,所以从上往下填表需要设置两个临时变量进行倒换,比较麻烦;且从上... 阅读全文
posted @ 2016-10-10 16:30 水煮海鲜 阅读(92) 评论(0) 推荐(0) 编辑
摘要: //非递减数列,[left, right] 闭区间,最后left一定会等于rightwhile(left > 1);//防止溢出,没有+1,mid偏左 if(target > nums[mid]) { left = mid + 1;//因为mid已经偏左,lef... 阅读全文
posted @ 2016-10-10 16:29 水煮海鲜 阅读(81) 评论(0) 推荐(0) 编辑
摘要: Combination Sum//代码1public class Solution { public List> combinationSum(int[] candidates, int target) { List> result = new ArrayLis... 阅读全文
posted @ 2016-10-10 16:29 水煮海鲜 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 1.新建一个数组,将原数组的数据按规律复制到新数组,这种方法做不到in-place,占用了额外一个数组的空间newx = y;newy = n-1-x;2.我们可以按ring by ring的顺序进行操作 交换在每个ring上的4个点之间进行public class Solutio... 阅读全文
posted @ 2016-10-10 16:29 水煮海鲜 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 这题是回溯法的经典例题,在剪枝的判断中,需要判断3个条件:每列是否冲突45°对角线是否冲突135°对角线是否冲突对于第1个条件,可以很容易想到用数组查询;但对于第2和第3个条件,我原来是用for循环检查的,后来发现更优的解法:也可以用数组查询法,这样这三个条件就可以统一起来了。 ... 阅读全文
posted @ 2016-10-10 16:28 水煮海鲜 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 在leetcode上,跟Permutations有关的题目:31 Next Permutation46 Permutations一.31 Next Permutation 31题是排列的入门题,给出[1,2,3,4],需给出下一排列[1,2,4,3]。这题有固定的解法,给定... 阅读全文
posted @ 2016-10-10 16:26 水煮海鲜 阅读(210) 评论(0) 推荐(0) 编辑