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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

数组|leetcode209.长度最小的子数组

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

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

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

示例 1:

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

示例 2:

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

示例 3:

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

提示:

1 <= target <= 109 1 <= nums.length <= 105 1 <= nums[i] <= 105

進(jìn)階:

如果你已經(jīng)實(shí)現(xiàn) O(n) 時(shí)間復(fù)雜度的解法, 請(qǐng)嘗試設(shè)計(jì)一個(gè) O(n log(n)) 時(shí)間復(fù)雜度的解法。

來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/minimum-size-subarray-sum
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

暴力遍歷

class Solution {public int minSubArrayLen(int target, int[] nums) {int min = Integer.MAX_VALUE;int sum = 0; //子序列數(shù)值之和for (int i = 0; i < nums.length;i++){sum = 0;for(int j = i;j < nums.length;j++){sum+=nums[j];if(sum >= target){int len = j - i + 1 ; //子序列長(zhǎng)度min = len < min ? len : min;//取較短的長(zhǎng)度break;} }}//如果沒(méi)有找到min還依然等于最初賦值return min == Integer.MAX_VALUE ? 0 : min;} }


時(shí)間復(fù)雜度O(n^2)
空間復(fù)雜度O(1)

雙指針(滑動(dòng)窗口)

class Solution {public int minSubArrayLen(int target, int[] nums) {int min = Integer.MAX_VALUE;int i = 0, j = 0,sum = 0;for(j = 0 ; j < nums.length; j++){sum += nums[j];while(sum >= target){int len = j - i + 1;min = len < min ? len : min;sum -= nums[i++];}}return min == Integer.MAX_VALUE ? 0 : min;} }

總結(jié)

以上是生活随笔為你收集整理的数组|leetcode209.长度最小的子数组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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