ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

滑动窗口的使用(一)

滑动窗口的使用(一)

一、长度最小的子数组

209. 长度最小的子数组 - 力扣(LeetCode)

class Solution { public: int minSubArrayLen(int target, vector<int>& nums) { int n = nums.size(); int sum = 0; int len = INT_MAX; int t = 0; for(int left = 0, right = 0;right < n;right++) { sum += nums[right]; while(sum >= target) { len = min(len, right - left + 1); sum -=nums[left++]; t = 1; } } if(t == 0) return 0; return len; } };

二、无重复字符的最长子串

3. 无重复字符的最长子串 - 力扣(LeetCode)

class Solution { public: int lengthOfLongestSubstring(string s) { int n = s.size(); int left = 0, ans = 0; int cnt[128] = {0}; for (int right = 0; right < n; right++) { char c = s[right]; cnt[c]++; while (cnt[c] > 1) { // 出现重复,收缩左边界 cnt[s[left]]--; left++; } ans = max(ans, right - left + 1); } return ans; } };
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进