【LeetCode】560.Subarray Sum Equals K(Medium)解题报告
2018-01-31 11:14
501 查看
【LeetCode】560.Subarray Sum Equals K(Medium)解题报告
题目地址:https://leetcode.com/problems/subarray-sum-equals-k/description/
题目描述:
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].
Solution1:
Solution2:
Date:2018年1月31日
题目地址:https://leetcode.com/problems/subarray-sum-equals-k/description/
题目描述:
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].
Solution1:
//Edward Shi //两种方法,第一种,暴力解 //time:O(n^2) //space:O(1) class Solution { public int subarraySum(int[] nums, int k) { int res = 0; for(int i=0;i<nums.length;i++){ int sum=0; for(int j=i;j<nums.length;j++){ sum+=nums[j]; if(sum==k){ res++; } } } return res; } }
Solution2:
//Edward Shi //两种方法,第二种,two sum思想 //time:O(n) //space:O(n) class Solution { public int subarraySum(int[] nums, int k) { int res = 0; int sum = 0; HashMap<Integer,Integer> map = new HashMap<>(); //key是总和,value是数目 map.put(0,1); for(int i=0 ; i<nums.length ;i++){ sum += nums[i]; if(map.containsKey(sum-k)){ //总体减前面一部分 res += map.get(sum-k); } map.put(sum,map.getOrDefault(sum,0)+1); //java8新函数 } return res; } }
Date:2018年1月31日
相关文章推荐
- 【LeetCode】325.Maximum Size Subarray Sum Equals k(Medium)解题报告
- 【LeetCode】560.Subarray Sum Equals K解题报告
- [leetcode] 325. Maximum Size Subarray Sum Equals k 解题报告
- [Leetcode] 560. Subarray Sum Equals K 解题报告
- [Leetcode] 325. M 4000 aximum Size Subarray Sum Equals k 解题报告
- [leetcode]560. Subarray Sum Equals K
- 【Leetcode】560. Subarray Sum Equals K
- leetcode560. Subarray Sum Equals K
- [Leetcode] 209. Minimum Size Subarray Sum 解题报告
- 【LeetCode】113.Path Sum II(Medium)解题报告
- 【LeetCode】216.Combination Sum III(Medium)解题报告
- Leetcode 560[medium]. Subarray Sum Equals K
- LeetCode 560. Subarray Sum Equals K
- Leetcode 325. Maximum Size Subarray Sum Equals k (Medium) (cpp)
- LeetCode560. Subarray Sum Equals K
- Leetcode 560. Subarray Sum Equals K
- LeetCode-560. Subarray Sum Equals K
- LeetCode解题报告 53. Maximum Subarray [medium]
- leetcode 560. Subarray Sum Equals K
- Leetcode 560. Subarray Sum Equals K