[LeetCode] 2461. Maximum Sum of Distinct Subarrays With Length K
難度分: 1553 定長度的 sliding window,搭配對 window 檢查是否滿足條件 class Solution { public: long long maximumSubarraySum(vector<int>& nums, int k) { int n = nums.size(); unordered_map<int, int> cnt; long long sum = 0; int valid = 0; for (int i = 0; i < k; i++) { sum += nums[i]; if (cnt[nums[i]]++ == 0) valid++; } long long res = valid == k ? sum : 0; for (int i = k; i < n; i++) { sum += (nums[i] - nums[i-k]); if (cnt[nums[i]]++ == 0) valid++; if (--cnt[nums[i-k]] == 0) valid--; if (valid == k) res = max(res, sum); } return res; } };