首页 > 其他分享 >【leetcode-数组】长度最小的子数组

【leetcode-数组】长度最小的子数组

时间:2023-03-23 15:02:23浏览次数:34  
标签:right min int nums 数组 长度 leetcode left


题目:

给定一个含有 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组如果不存在符合条件的连续子数组,返回 0。

示例: 


输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。


进阶:

如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。


思路:

利用两个指针移动,由于两个指针移动的过程中,指针之间的距离就像一个窗口一样,我们通过控制窗口的大小,得到我们想要的结果。我们称这种问题是一个滑动窗口问题。

java代码:

class Solution {
     public int minSubArrayLen(int s, int[] nums) {
        int left = 0;
        int right = 0;
        int sum = 0;
        int min = Integer.MAX_VALUE;

        int len = nums.length;
        while (left < len) {
            if(right<len && sum<s) {
                sum+=nums[right];
                right++;
            }else {
                sum-=nums[left];
                left++;
            }

            if(sum>=s) {
                min = Math.min(min, right-left);
            }
        }

        return min == Integer.MAX_VALUE ? 0 : min;

    }
}

 

由于水平有限,文章中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!

及时更新最新文章和学习资料,一起来学习:

【leetcode-数组】长度最小的子数组_子数组


标签:right,min,int,nums,数组,长度,leetcode,left
From: https://blog.51cto.com/u_6813689/6145097

相关文章

  • 【leetcode-数组】最大连续1的个数
    题目:给定一个二进制数组,计算其中最大连续1的个数。示例1:输入:[1,1,0,1,1,1]输出:3解释:开头的两位和最后的三位都是连续1,所以最大连续1的个数是3.注意:输入的数组......
  • leetcode-设置交集大小至少为2
    题目:一个整数区间[a,b](a<b)代表着从a到b的所有连续整数,包括a和b。给你一组整数区间intervals,请找到一个最小的集合S,使得S里的元素与区间intervals中的每......
  • 每日一题-leetcode 单值二叉树
    如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回false。示例1:输入:[1,1,1,1,1,null,1]输出:true示例2:输......
  • 【leetcode-链表】两两交换链表中的节点
    题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例:1->2->3->42->1->4->3思路:首先需要建......
  • 【leetcode-动态规划】斐波那契数
    题目:斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=0,  F(1) =1F(N)=......
  • 每日一题-leetcode 环绕字符串中唯一的子字符串
    把字符串s看作是 “abcdefghijklmnopqrstuvwxyz” 的无限环绕字符串,所以 s看起来是这样的:“…zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd…”.现......
  • 字符串有长度限制吗?是多少?
    字符串的内容是由一个字符数组char[]来存储的,由于数组的长度及索引是整数,且String类中返回字符串长度的方法length()的返回值也是int,所以通过查看java源码中的类Intege......
  • 代码随想录Day5-Leetcode242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数
    242.有效的字母异位词准备面试隔了三天没刷题,结果面试里就考到哈希表了,也是蛮感叹的.简单题,不过api又忘的差不多了这道可以用数组手动实现一个简易哈希表,但(因为......
  • 数组详解
    数组的定义数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而来其中,每一个数据称作一个数组元素,每个数组元素可以通过......
  • LeetCode344. 反转字符串
    题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外......