Leetcode 525 连续数组 前缀和 + 哈希

题目链接
Leetcode 525 连续数组 前缀和 + 哈希

class Solution {
public:
    int findMaxLength(vector<int>& nums) {
        int n = nums.size();
        vector<int> sum(n+1);
        for(int i = 1; i <= n; i++) sum[i] = sum[i-1] + (nums[i-1] ? 1 : -1);
        unordered_map<int,int> hash;
        int res = 0;
        hash[0] = 0;
        for(int i = 1; i <= n; i++)
        {
            if(hash.find(sum[i]) != hash.end()) res = max(res, i - hash[sum[i]]);
            else hash[sum[i]] = i;
        }
        return res;
    }
};
上一篇:算法修炼之路—【字符串】Leetcode 344 反转字符串


下一篇:525_linux C编程中IPC管道