class Solution { public: int minSubArrayLen(int target, vector<int>& nums) { // 长度最小的子数组 // 大于等于 target int min_len = INT32_MAX; // 总和 int sum = 0; int start = 0; // 起点 for(int i = 0; i< nums.size(); i++) { sum += nums[i]; while(sum >= target) { int len = i-start+1; if(len < min_len ) { min_len = len; } sum -= nums[start++]; } } if(min_len == INT32_MAX ) { return 0; } else { return min_len; } } }; 3. 无重复字符的最长子串 class Solution { public: int lengthOfLongestSubstring(string s) { // 长度 int str_size = s.size(); if(str_size == 0) { return 0; } int max_len = 0; int left = 0; unordered_set<char> str; // 用来存储 字符 for(int i = 0; i< str_size ; i++ ){ // 如果没有找到 该字符 while(str.find(s[i]) != str.end()) { str.erase(s[left]); left++; } max_len = max(max_len, i- left + 1); // 插入 str.insert(s[i]); } return max_len; } };