日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode 209.长度最小子序列(滑动窗口)

發(fā)布時(shí)間:2024/9/27 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode 209.长度最小子序列(滑动窗口) 小編覺(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

滑動(dòng)窗口的思想,一開(kāi)始兩個(gè)指針?lè)旁谄鹗疾课弧?熘羔槻粩嘞蚯?#xff0c;sum累加,直到sum超過(guò)目標(biāo)target就進(jìn)入while循環(huán)去移動(dòng)慢指針。

#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<vector> using namespace std;class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int result = INT_MAX;//防止subLength超過(guò)int的最大范圍10的九次方。int sum = 0;int i = 0; int j = 0;int subLength = 0;for (j = 0; j < nums.size(); j++) {sum += nums[j];while (sum >= target) {subLength = j - i + 1;result = result < subLength ? result : subLength;//通過(guò)三目表達(dá)式來(lái)更新result,如果subLength超過(guò)最大整型長(zhǎng)度,就讓result保持INT_MAX;sum -= nums[i++];//通過(guò)while循環(huán)去更新i和subLength}}return result == INT_MAX ? 0 : result;//返回判斷,result == INTMAX代表沒(méi)有更新。說(shuō)明沒(méi)有找到這個(gè)值,返回零} };

總結(jié)

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

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