题解 | #和为K的连续子数组#
和为K的连续子数组
http://www.nowcoder.com/practice/704c8388a82e42e58b7f5751ec943a11
class Solution {
public:
/**
* max length of the subarray sum = k
* @param arr int整型vector the array
* @param k int整型 target
* @return int整型
*/
int maxlenEqualK(vector<int>& arr, int k) {
// write code here
unordered_map<int, int> rec;
rec[0] = -1;
int cur_num = 0, res = 0;
for(int i=0; i<arr.size(); i++){
cur_num = cur_num + arr[i];
if(rec.find(cur_num - k) != rec.end()){
res = max(res, i - rec[cur_num-k]);
}
if(rec.find(cur_num) == rec.end()){
rec[cur_num] = i;
}
}
return res;
}
};
查看12道真题和解析