首页 > 其他分享 >LeetCode:长度最小的子数组

LeetCode:长度最小的子数组

时间:2023-02-18 20:44:26浏览次数:45  
标签:MiNum end target int start 数组 长度 LeetCode

题目描述:

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0

解题思路:

使用双指针来遍历数组。设指针One指向数组头部确定不动,在设指针Two开始遍历;设置int型变量sum对遍历的元素累加寻找目标值Target。当找到Target的时候记录该数组的长度,同时使sum减去当前子数组的头部,移动指针One来继续寻找下一个子数组。

代码实现:

class Solution { public:     int minSubArrayLen(int target, vector<int>& nums) {         int len = nums.size();           if (len == 0) {             return 0;         }         int start = 0 ;         int end   = 0 ;         int sum   = 0 ;         int tmp   = 0 ;         int MiNum = INT_MAX ;             while(end <len)             {                 sum += nums[end];                 while(sum >= target)//end已确定,开始遍历数组寻找距离target最近的长度最小的数组                 {                     tmp = end-start+1 ;                     if(MiNum>=tmp)                     {                         MiNum = tmp;                     }                     sum -= nums[start]; //每次找到目标值后,删除头部start,再次寻找下一个数组。                     start ++;                 }                 end ++;             }     return MiNum == INT_MAX?0:MiNum;    //如果未找到目标值,最小数组长度为最大正整数,返回0.     } };


标签:MiNum,end,target,int,start,数组,长度,LeetCode
From: https://www.cnblogs.com/kknothing/p/17133548.html

相关文章

  • numpy定义空数组及其拼接
     numpy三维数组拼接_fK0pS的博客-CSDN博客_numpy三维矩阵拼接......
  • JavaScript中数组是如何在内存中存储的?
    前言大家好,我是CoderBin,本次讲讲JavaScript中数组是如何在内存中存储的,希望对大家有所帮助,谢谢。如果文中有不对、疑惑的地方,欢迎在评论区留言指正......
  • 【LeetCode二叉树#01】二叉树的遍历(递归/迭代)
    二叉树递归遍历写递归算法时候需要遵循的三个点:确定递归函数的参数和返回值:确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数,并且还要明确每次递......
  • Leetcoed:有序数组的平方
    题目描述:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。解题思路:暴力解法:将数组中每个元素都取其平......
  • 【算法训练营day48】LeetCode198. 打家劫舍 LeetCode213. 打家劫舍II LeetCode337. 打
    LeetCode198.打家劫舍题目链接:198.打家劫舍独上高楼,望尽天涯路dp[i]表示的是偷窃0-i房屋所能获得的最大金额。classSolution{public:introb(vector<int>&n......
  • Java中的长度length、length()、size()的区别
    java中有三个常用的与长度相关的属性和方法,分别是length、length()、size()。记录一下它们之间的区别;length属性单独的length是针对数组而言,表示声明数组的长度,也就是......
  • Leetcode27:移除元素
    题目描述:给你一个数组nums 和一个值val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并......
  • #yyds干货盘点# LeetCode程序员面试金典:数字流的秩
    题目:假设你正在读取一串整数。每隔一段时间,你希望能找出数字x的秩(小于或等于x的值的个数)。请实现数据结构和算法来支持这些操作,也就是说:实现track(intx) 方法,每读......
  • #yyds干货盘点# LeetCode面试题:四数之和
    1.简述:给你一个由n个整数组成的数组 nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a],nums[b],nums[c],nums[d]] (若两个四元......
  • vue中关于数组有_ob_:observer后缀取不到值
      解决方法1:  解决方法2:  参考:https://blog.csdn.net/weixin_43304253/article/details/126763535   https://www.ezd.cc/zs/4231.html ......