做百度移動端網(wǎng)站營銷服務機構(gòu)
目錄
209. 長度最小的子數(shù)組
解析
題解
3. 無重復字符的最長子串
解析
題解
1004. 最大連續(xù)1的個數(shù) III
解析
題解
209. 長度最小的子數(shù)組
209. 長度最小的子數(shù)組 - 力扣(LeetCode)
解析
題解
class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {// 009_專題二_滑動窗口_長度最小的子數(shù)組_C++int left = 0, right = 0, n = nums.size(), sum = 0, len = INT_MAX;while (right < n) {sum += nums[right]; // 進窗口while (sum >= target) // 判斷{len = min(len, right - left + 1); // 更新結(jié)果sum -= nums[left];left++; // 出窗口}right++;}return len == INT_MAX ? 0 : len;}
};
3. 無重復字符的最長子串
3. 無重復字符的最長子串 - 力扣(LeetCode)
解析
題解
class Solution {
public:int lengthOfLongestSubstring(string s) {// 010_專題二_滑動窗口_無重復字符的最長子串_C++int hash[128] = {0};int n = s.size(), len = 0;for (int left = 0, right = 0; right < n; ++right) {hash[s[right]]++; // 進窗口while (hash[s[right]] == 2) // 判斷{hash[s[left]]--; // 出窗口left++;}len = max(len, right - left + 1); // 出窗口之后再更新結(jié)果}return len;}
};
1004. 最大連續(xù)1的個數(shù) III
1004. 最大連續(xù)1的個數(shù) III - 力扣(LeetCode)
?
解析
題解
class Solution {
public:int longestOnes(vector<int>& nums, int k) {// 011_專題二_滑動窗口_最大連續(xù) 1 的個數(shù)III_C++// 轉(zhuǎn)化為:找出最長的子數(shù)組,0的個數(shù)不少于kint n = nums.size(), len = INT_MIN;for (int left = 0, right = 0, zero = 0; right < n; ++right) {if (nums[right] == 0)zero++; // 進窗口while (zero > k) // 判斷{if (nums[left] == 0)zero--;left++; // 向后移動}len = max(len, right - left + 1); // 更新結(jié)果}return len;}
};