class Solution { public: int huawei(vector<int>& nums,int sum) { int prefix = 0; int ans = -1; unordered_map<int,int>mp; mp[0] = -1; // 特判 for(int i = 0; i<nums.size(); i++){ prefix += nums[i]; if(mp.find(prefix) == mp.end()){ mp[prefix] = i; // 记录前缀和的第一次出现下标 } if(mp.find(prefix - sum) != mp.end()){ ans = max(ans,i - mp[prefix - sum]); } } return ans; } };
1 1

相关推荐

牛客网
牛客企业服务