Sum—LeetCode-560 Subarray Sum Equals K
来源:互联网 发布:标准篮球场数据 编辑:程序博客网 时间:2024/06/04 18:25
题目描述:
Given an array of integers and an integer k, you need to find the total number of continuous subarrays whose sum equals tok.
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 integerk is [-1e7, 1e7].
public int subarraySum(int[] nums, int k) { if(nums.length == 1 && nums[0] != k) return 0; return rescuSum(nums, k, 0); } private int rescuSum(int[] nums, int k, int start) { if(start >= nums.length){ return 0; } int firstCount = 0; int sum = 0; for(int i = start; i < nums.length; ++i) { sum += nums[i]; if(sum == k){ ++firstCount; } } return firstCount + rescuSum(nums, k, start + 1); }
思路二(没有想到,hash映射):遍历所有起点是最开始元素的子序列,起名叫sum[i],只要两个sum[i]的差值是k,则两个i作为起点和终点的子序列就符合要求。由于起点就是最开始元素,只需遍历终点,时间复杂度为O(n)
public int subarraySum(int[] nums, int k) { Map<Integer,Integer> map = new HashMap<Integer,Integer>(); map.put(0,1); int sum = 0; int res = 0; for(int i = 0;i<nums.length;i++) { sum += nums[i]; res += map.getOrDefault(sum-k,0); map.put(sum,map.getOrDefault(sum,0)+1); } return res; }
思路三:暴力,时间复杂度O(n^2)
0 0
- Sum—LeetCode-560 Subarray Sum Equals K
- [leetcode 560]Subarray Sum Equals K
- 20170603-leetcode-560-Subarray Sum Equals K
- leetcode 560Subarray Sum Equals K题解
- leetcode(560). Subarray Sum Equals K
- LeetCode 560 Subarray Sum Equals K
- Leetcode 560[medium]. Subarray Sum Equals K
- [LeetCode]Subarray Sum Equals K
- leetCode-Subarray Sum Equals K
- leetcode 523. Continuous Subarray Sum 560. Subarray Sum Equals K
- Subarray Sum Equals K
- Subarray Sum Equals K
- Subarray Sum Equals K
- Subarray Sum Equals K
- 【Leetcode】Maximum Size Subarray Sum Equals k
- leetcode Maximum Size Subarray Sum Equals k
- Leetcode: Maximum Size Subarray Sum Equals k
- Leetcode 560. Subarray Sum Equals K
- Yeoman自动构建js项目
- 基于Java I/O的应用程序实验
- html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
- Java多线程随笔
- 冒泡排序
- Sum—LeetCode-560 Subarray Sum Equals K
- 一行代码搞定漂亮的Android6.0权限申请界面
- reduce函数
- 支付宝退款功能开发
- reactjs1环境搭建
- 简单Profibus/DP实验系统的组建
- 最新yoco v2训练自己的数据
- Oracle 12C 新特性之扩展数据类型(extended data type)
- 对象