php网站模板 免费,高明网站设计服务,黑糖不苦还做网站么,学做网网站论坛力扣209题
题目描述#xff1a;长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] #xff0c;并返回其长度**。**如果不存在符合条件的子数组…力扣209题
题目描述长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] 并返回其长度**。**如果不存在符合条件的子数组返回 0 。 **题解思路**力扣上暴力搜索会超时 可以使用滑动窗口的方法实现用一个指针寻找终止位置然后通过 sum target来更新起始位置从而达到降低复杂度的目的。 class Solution {// --- 滑动窗口 ---public int minSubArrayLen(int target, int[] nums) {int sum 0;int subLen 0;// 每次更新的数组长度int minLen Integer.MAX_VALUE;// 最小的子数组长度初始时设为最大值int start 0;// 起始位置的下标for (int end 0; end nums.length; end) {sum nums[end];while (sum target) {subLen end - start 1;// 更新子数组的长度minLen subLen minLen ? subLen : minLen;// 取最小的子数组长度sum - nums[start]; // 更新 i 的位置}}return minLen Integer.MAX_VALUE ? 0 : minLen;}
}