Leetcode 209. 长度最小的子数组 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 209. 长度最小的子数组 解题思路及C++实现
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
解題思路:
定義兩個(gè)指針 left 和 right,構(gòu)成一個(gè)滑動(dòng)窗口,當(dāng)窗口內(nèi)的數(shù)值和小于 s 時(shí),右指針向右滑動(dòng),當(dāng)窗口內(nèi)的數(shù)值和大于等于 s 時(shí),就要更新一次 子數(shù)組的最小長(zhǎng)度了。同時(shí) 左指針向右滑動(dòng)。
?
class Solution { public:int minSubArrayLen(int s, vector<int>& nums) {if(nums.empty()) return 0;int res = INT_MAX;int left = 0; //滑動(dòng)窗口的左指針int right = 0; //滑動(dòng)窗口的右指針int sum = 0;while(right < nums.size()){if(sum + nums[right] < s){sum += nums[right];right++;}else{res = min(res, right-left+1);sum = sum - nums[left];left++;}}if(res == INT_MAX) res = 0;return res;} };?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Leetcode 209. 长度最小的子数组 解题思路及C++实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Leetcode 162. 寻找峰值 解
- 下一篇: Leetcode 202. 快乐数 解题