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

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

生活随笔

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

编程问答

leetcode209. 长度最小的子数组(滑动窗口)

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

一:題目

二:上碼

class Solution { public:/**思路:1.滑動(dòng)窗口解法1>:確定窗口內(nèi)是什么2>:確定窗口的起始位置3>:確定窗口的終止位置2.窗口:也就是我們的求的連續(xù)字符串的和3.窗口的起始位置: 窗口的起始位置最先是我們數(shù)組的起始位置,當(dāng)窗口內(nèi)連續(xù)數(shù)組的和大于target的時(shí)候, 起始位置就需要往前移動(dòng)來(lái)縮小我們窗口的大小4.窗口的終止位置: 窗口的終止位置就是我們的數(shù)組的下標(biāo)*/int minSubArrayLen(int target, vector<int>& nums) {int i = 0;//起始位置int length = 0;//窗口的大小int ans = INT_MAX;int sum = 0;for (int j = 0; j < nums.size(); j++) {sum += nums[j];while (sum >= target) {//要開(kāi)始移動(dòng)我們窗口的起始位置length = (j-i+1);//這里加一是因?yàn)?我們的j是從0開(kāi)始的ans = ans > length ?length :ans;//開(kāi)始縮小我們的窗口sum -= nums[i++];} } return ans == INT_MAX ? 0 : ans;} };// class Solution { // public: // /** // 思路: // 1.暴力解法 // 兩層for循環(huán),記錄下來(lái) >=target 的字符串長(zhǎng)度。 // 2.超時(shí) // */ // int minSubArrayLen(int target, vector<int>& nums) {// int length = nums.size(); // int ans = INT_MAX;// for (int i = 0; i < length; i++) { // vector<int> v; // for (int j = i; j < nums.size(); j++) { // v.push_back(nums[j]); // int sum = accumulate(v.begin(),v.end(),0); // if(sum >= target) { // if (ans > v.size()) { // ans = v.size(); // } else { // break; // } // }// } // }// if(ans == INT_MAX) return 0;// return ans; // } // };

總結(jié)

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

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