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