前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode209最小子串

leetcode209最小子串

原创
作者头像
用户11062199
发布2024-06-19 13:58:33
660
发布2024-06-19 13:58:33

LC209

给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

代码语言:javascript
复制
 class Solution {
 public:
     int minSubArrayLen(int target, vector<int>& nums) {
         //定义两个下标当做一对同向双指针
         int left = 0, right = 0;
         int size = nums.size();
         int sum = 0;
         int len = 0, min_len = INT_MAX;
         //left在开头位置不动,先是right向后走
         for(right = 0; right < size; right++)
         {
             //将遍历到的值放进sum中
             sum += nums[right];
             //当sum>=target时就不必再让right向后遍历
             while(sum >= target)
             {
                 //计算当时的长度
                 len = right - left + 1;
                 //更新最小长度
                 min_len = min(len, min_len);
                 //sum达到target的值的时候就让sum减去left当前位置的值,然后让left向前一步
                 sum -= nums[left++];
             }
         }
 ​
         return min_len == INT_MAX ? 0 : min_len;
     }
 };
 ​

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LC209
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档