【leetcode】Minimum Size Subarray Sum
2015-07-31 14:58
183 查看
class Solution { public: int minSubArrayLen(int s, vector<int>& nums) { if( nums.size() < 1) return 0; int start = 0, end = 0; int sum = 0,min = 0; int temp = 0; //find the first minimum length while(end < nums.size()){ sum += nums[end]; if(sum >= s){ min = end + 1; break; } end++; } if(end >= nums.size()) return 0; while(end < nums.size()){ //test how many previous element can be deleted while(start <= end){ sum -= nums[start++]; if(sum >= s){ temp = end - start + 1; if(temp < min) min = temp; }else break; } //if end does not reach the end of array and start is smaller than end //then add the next element if(end < nums.size() && start < end){ end++; sum += nums[end]; }else break; } return min; } };
以上是AC代码
主要思路还是应用双指针 start 和 end
1. 固定start 移动end 找到第一个满足大于等于s的长度
2. 试着删除开始的几个元素,直到不满足s
3. 如果2没有全部之前所存储的满足s的元素, 则继续加上end指针的指向的后面的元素
4.循环2和3过程直到遍历了所有元素
相关文章推荐
- HTML5 input type=“number”的maxlength设置没效果问题
- 轻扫手势
- C/C++_sizeof的本质与使用注意事项
- 在Swift怎样创建CocoaPod
- 65. Valid Number
- 在dataguard备库上找回在主库上被错误的Drop/Truncate/Delete 掉的Table
- linux系统启动oracle
- 如何做一份能忽悠投资人的PPT
- php使用Imagick生成图片的方法
- 查找字符串中出现次数最多的字符
- Python制作数据导入导出工具
- sqlite乱码
- 使用Java代码在Android中实现图片裁剪功能
- Jackson 高性能的JSON处理 ObjectMapper
- 浅谈大型web系统架构
- 精妙SQL语句-1
- Eclipse配置tomcat,访问http://localhost:8080出现404错误
- POJ 2488:A Knight's Journey 深搜入门之走马观花
- 【Android本地开发:图像处理】Skia图像库
- 回到顶部功能