LeetCode Subarray Sum Equals K
原题链接在这里: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].
题解:
计算subarray的和为k的个数.
保存从头到当前值和sum 以及 对应这个和的个数. 若是之前出现了sum-k说明这一段相加就是k. 更新和.
Note: 初始HashMap<Integer, Integer> hm 时需要先把和为0的情况加进去. 最开始什么都没有, 所以hm需要加上<0,1>这个对应关系.
Time Complexity: O(nums.length).
Space: O(nums.length).
AC Java:
1 class Solution { 2 public int subarraySum(int[] nums, int k) { 3 if(nums == null || nums.length == 0){ 4 return 0; 5 } 6 7 HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>(); 8 hm.put(0, 1); 9 int res = 0; 10 int sum = 0; 11 for(int num : nums){ 12 sum += num; 13 if(hm.containsKey(sum - k)){ 14 res += hm.get(sum - k); 15 } 16 17 hm.put(sum, hm.getOrDefault(sum, 0)+1); 18 } 19 return res; 20 } 21 }
类似Two Sum, Continuous Subarray Sum, Subarray Product Less Than K.
转载于:https://www.cnblogs.com/Dylan-Java-NYC/p/7761030.html
LeetCode Subarray Sum Equals K相关推荐
- Leetcode 560. Subarray Sum Equals K
前缀和(prefix sum/cumulative sum) import collectionsclass Solution(object):def subarraySum(self, nums, ...
- LeetCode 325. Maximum Size Subarray Sum Equals k
这一题开始以为是sliding window,后来发现,因为有负数,sum不具有单调性,没有办法用slidng window找出optimal solution. 如果考虑brute force的做法 ...
- LeetCode 第201次周赛 1546. Maximum Number of Non-Overlapping Subarrays With Sum Equals Target
Leetcode 1546. Maximum Number of Non-Overlapping Subarrays With Sum Equals Target 题目描述 思路 周赛代码 优化代码 ...
- leetcode 907. Sum of Subarray Minimums | 907. 子数组的最小值之和(单调栈)
题目 https://leetcode.com/problems/sum-of-subarray-minimums/ 题解 单调栈问题.参考左神算法课:https://ke.qq.com/webcou ...
- leetcode 523. Continuous Subarray Sum | 523. 连续的子数组和(同余定理)
题目 https://leetcode.com/problems/continuous-subarray-sum/ 题解 没有想到 O(n) 的方法,于是直奔答案: 参考1:[宫水三叶]拓展到求方案数 ...
- [LintCode] Minimum Size Subarray Sum 最小子数组和的大小
Given an array of n positive integers and a positive integer s, find the minimal length of a subarra ...
- LeetCode 2090. 半径为 k 的子数组平均值(滑窗)
文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的数组 nums ,数组中有 n 个整数,另给你一个整数 k . 半径为 k 的子数组平均值 是指:nums 中一个以下标 i 为 ...
- leetcode523 Continuous Subarray Sum
思路: 令sum[p]表示p位置的前缀和.如果sum[i] % k == sum[j] % k (j - i > 1),则存在子段(i, j]的和能够整除k. 实现: 1 class Solut ...
- LintCode 402: Continuous Subarray Sum
LintCode 402: Continuous Subarray Sum 题目描述 给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大.输出答案时,请分别返回第一个数字和最后一个数字的下标 ...
最新文章
- Linux系统文件名字体不同的颜色都代表什么
- OpenCV拼接细节stitching detailed的实例(附完整代码)
- 睡前必读 | 如何系统性地学习分布式系统?
- linux主机ftp传输文件效率,FTP和TCP的文件传输效率对比测试分析
- 南京高中计算机老师,南京市教育局召开中小学教师信息技术应用能力提升工程2.0市级专家组工作会议...
- ASoC Codec驱动代码框架图
- 1.1 矩阵与线性方程组-矩阵的基本运算
- 统计通话次数和时间的软件_通话时间统计app下载-通话时间统计下载v2.3-西西软件下载...
- handlersocket原理和性能测试
- 如何从0到1进行电商平台订单系统的搭建?
- Axure制作倒计时
- Android P wakeup 亮屏流程
- 微信小程序修改data,页面数据实时更新
- windows配置静态路由表
- 谷歌是如何以简洁赢取用户的
- Android自定义控件:NestedScrolling实现仿魅族flyme6应用市场应用详情弹出式layout
- Java画图板界面上的添加
- AG256SL100 与EPM240T100 完全PIN TO PIN兼容
- windows7快捷键-好玩的
- python3.7安装完成pip无法使用