思路:连续不重复的子数组使用双指针和memo
双指针遍历,memo去重
class Solution {
public:
int maximumUniqueSubarray(vector<int>& nums) {
int Max=0;
int sum=0;
unordered_map<int,int> memo;
for(int i=0,j=0;i<nums.size()&&j<nums.size();){
if(memo.find(nums[j])==memo.end()||memo[nums[j]]==0){
memo[nums[j]]=1;
sum+=nums[j];
j++;
}
else {
Max=max(Max,sum);
while(memo[nums[j]]!=0){
sum-=nums[i];
memo[nums[i++]]--;
}
}
cout<<i<<j<<sum<<endl;;
}
return max(Max,sum);
}
};