classSolution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max length of the subarray sum = k * @param arr int整型vector the array * @param k int整型 target * @return int整型 */ intmaxlenEqualK(vector<int>& arr, int k){ // write code here unordered_map<int, int> mp; mp[0] = -1; int pre = 0, ans = 0; for (int i = 0; i < arr.size(); i++) { pre += arr[i]; if (mp.find(pre-k) != mp.end()) { ans = max(ans, i-mp[pre-k]); } if (mp.find(pre) == mp.end()) { mp[pre] = i; } } return ans; } };