# (Medium) 560. Subarray Sum Equals K ## Run Code  ## 題意 給一串陣列nums,要找出連續最長且加總等於k的所有符合的答案。 ## 解題思路 用sum紀錄跑過的所有數的加總,然後放入map裡面,當下一個數在收尋時就可以直接從map裡面找是否有紀錄。 ## 困難之處 因為題目給的陣列是從小排到大,所以find的function裡面放sum-k而不是k-sum。 ## Code ```cpp= class Solution { public: int subarraySum(vector<int>& nums, int k) { int answer = 0; int sum = 0; map<int,int> hashmap; for(int i=0;i<nums.size();i++){ sum += nums[i]; if(sum==k) answer++; if(hashmap.find(sum-k)!=hashmap.end()) answer+=hashmap[sum-k]; hashmap[sum]++; } return answer; } }; ``` ###### tags: `leetcode`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up