[LeetCode] 560. Subarray Sum Equals K

来源:互联网 发布:中国淘宝十大女模特 编辑:程序博客网 时间:2024/06/05 11:58

Given an array of integers and an integer k, you need to find the total number of continuous subarrays whose sum equals to k.

Example 1:
Input:nums = [1,1,1], k = 2
Output: 2
Note:
The length of the array is in range [1, 20,000].
The range of numbers in the array is [-1000, 1000] and the range of the integer k is [-1e7, 1e7].

class Solution {public:    int subarraySum(vector<int>& nums, int k) {        int sum = 0, TotalComb = 0;        unordered_map<int, int> map;        map[0] = 1;        for (int i = 0; i < nums.size(); i++) {            sum += nums[i];            TotalComb += map[sum - k];            map[sum]++;        }        return TotalComb;    }};

这里写图片描述这里写图片描述