911. Maximum Size Subarray Sum Equals k

int maxSubArrayLen(vector<int> &nums, int k) { // Write your code here const int size = nums.size(); unordered_map<int, int> mp; int sum = 0; int maxLen = 0; for(int i = 0; i < size; i++){ sum += nums[i]; if(sum == k){ //key1 单独处理sum 等于k的情况 maxLen = max(maxLen, i + 1); } if(mp.find(sum - k) != mp.end()){ maxLen = max(maxLen, i - mp[sum - k]); } if(mp.find(sum) == mp.end()){ //key2 保持mp[sum] 的index是小值。只在sum不在mp里时,才更新 mp[sum] = i; } } return maxLen; }

Comments

Popular posts from this blog

算法的比较