日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

1、leetcode209 长度最小的子数组

發(fā)布時間:2025/3/19 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1、leetcode209 长度最小的子数组 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

leetcode209 長度最小的子數(shù)組

給定一個含有 n 個正整數(shù)的數(shù)組和一個正整數(shù) target 。

找出該數(shù)組中滿足其和 ≥ target 的長度最小的 連續(xù)子數(shù)組 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其長度。如果不存在符合條件的子數(shù)組,返回 0 。

示例 1:
輸入:target = 7, nums = [2,3,1,2,4,3]
輸出:2
解釋:子數(shù)組 [4,3] 是該條件下的長度最小的子數(shù)組。

示例 2:
輸入:target = 4, nums = [1,4,4]
輸出:1

示例 3:
輸入:target = 11, nums = [1,1,1,1,1,1,1,1]
輸出:0

文章目錄

  • leetcode209 長度最小的子數(shù)組
  • 一、滑動窗口
  • 二、滑動窗口模板

一、滑動窗口

class Solution {public int minSubArrayLen(int target, int[] nums) {int left=0; //左邊界int right=0;//右邊界int sum=0;int res=nums.length+1;//初始化是為了防止結果不存在while(right<nums.length){sum+=nums[right++];//讓右邊界進行移動while(sum>=target){res=Math.min(res,right-left);//求長度最小的子數(shù)組sum-=nums[left++];//左邊界進行移動} }return res==nums.length+1?0:res;} }

二、滑動窗口模板

分享一個滑動窗口模板,是在leetcode上看到別人寫的,他是寫的python版,改成了Java版本,感覺挺好的,有利于理解滑動窗口思想。可以利用這個思想來嘗試一下leetcode1001 最大連續(xù)1的個數(shù)

public int findSubArray(int[] nums,int target){//數(shù)組/字符串長度int len=nums.length;//雙指針,表示當前遍歷的區(qū)間[left, right],閉區(qū)間int left=0, right = 0; //用于統(tǒng)計子數(shù)組/子區(qū)間是否有效,根據(jù)題目可能會改成求和/計數(shù)int sum = 0;//保存最大的滿足題目要求的 子數(shù)組/子串 長度int res = 0;//當右邊的指針沒有搜索到數(shù)組/字符串的結尾while (right<len){//增加當前右邊指針的數(shù)字/字符的求和/計數(shù)sum += nums[right] //此時需要一直移動左指針,直至找到一個符合題意的區(qū)間while 區(qū)間[left, right]不符合題意{//移動左指針前需要從counter中減少left位置字符的求和/計數(shù)sum -= nums[left];//真正的移動左指針,注意不能跟上面一行代碼寫反left++;}//到while 結束時,我們找到了一個符合題意要求的子數(shù)組/子串res = Math.max(res, right - left + 1) //需要更新結果right ++; //移動右指針,去探索新的區(qū)間}return res } 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的1、leetcode209 长度最小的子数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。