摘要: 输入一个递增序列,求两个元素的和等于target的下标 数组求和系列问题,用头尾指针法,ON 阅读全文
posted @ 2016-08-31 19:29 0_summer 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 输入一个数组,求连续子数组中乘积最大的 这个和最大连续子数组很相似,但是由于相加和乘积的差异性所有有差别http://www.cnblogs.com/0summer/p/5822908.html 一个数(正数、零、负数)乘以一个负数会变得更小,所以负数对当前元素来说是负影响,但是这个负数可能对于后面 阅读全文
posted @ 2016-08-31 19:24 0_summer 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 输入一个字符串,逆序其中的单词 先遍历一遍字符串,把单词放入vector<string> vs中,然后逆序vs,之后遍历一遍vs放入s中 注意可能有连续很多个空格 阅读全文
posted @ 2016-08-31 18:57 0_summer 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 和上题一样,本题的序列中可能有重复的元素,不过用上题的代码能过 阅读全文
posted @ 2016-08-31 18:36 0_summer 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 一个递增数组,没有重复的元素,可能被右移过,找出最小的元素 这和这题差不多http://www.cnblogs.com/0summer/p/5825282.html 依旧是改进过的二分: 1.如果nums[l]<nums[mid],说明[l,mid]是递增的,但是[mid,r]不确定 1)如果num 阅读全文
posted @ 2016-08-31 18:33 0_summer 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 输入两个数组,gas[i]表示在i位置能加的油,cost[i]表示在i位置到i+1位置消耗的油,这n个位置围成一个圈,求是否存在从某一点出发能走完全程 第一想法是贪心,先处理处gas[i]/cost[i],然后从这个比值最大的点开始走,但找到反例:(5,4),(6,4),(5,5),(4,7),按刚 阅读全文
posted @ 2016-08-31 14:05 0_summer 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 输入一组序列,求所有的子集,和这一题一样http://www.cnblogs.com/0summer/p/5824212.html 这是本题输入的序列中可能有重复的元素,没有关系,上一题我已经考虑过这个问题了,就是树的每一层相同的元素只搜索一次,看注释 选择:dfs+回溯 去重:树的每一层相同的元素 阅读全文
posted @ 2016-08-31 11:56 0_summer 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 这题和http://www.cnblogs.com/0summer/p/5825282.html一样,只是上一题中序列里没有重复的元素 代码都是一样的 阅读全文
posted @ 2016-08-31 11:44 0_summer 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 一个有序的序列,可能右移了一定长度,求target在这个右移后的序列中的位置 直观做法:遍历一遍,但这题肯定原意不是这个 正解:二分,因为这个序列其实局部还是有序的 1.如果nums[l]<nums[mid]说明[l,mid]区间是有序的: 1)如果target>=nums[l]且target<=n 阅读全文
posted @ 2016-08-31 11:40 0_summer 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 输入非递减数组,要求每个元素最多重复两次,求最后剩下的数组和元素个数 这题函数的返回值是元素个数,但是还需要把输入的参数也就是输入的数组也改动成合法的 因为是有序的序列,所以直接遍历一遍,用cur保存元素,cnt保存这个元素出现的次数就好,ON 阅读全文
posted @ 2016-08-31 11:07 0_summer 阅读(124) 评论(0) 推荐(0) 编辑