974. Subarray Sums Divisible by K [Medium]
用了prefix sum的思想,之前没用过,感觉很难
/*** Runtime: 18 ms, faster than 56.05%* Memory Usage: 42.9 MB, less than 35.03%*/
class Solution {public int subarraysDivByK(int[] nums, int k) {HashMap<Integer, Integer> map = new HashMap(); // prefixSum, cntmap.put(0, 1);int count = 0, prefixSum = 0;for (int i : nums) {// prefixSum表示从第一个元素到当前元素的和,比k的倍数大了多少prefixSum = (i + prefixSum) % k;if (prefixSum < 0) { // 把范围控制在0~k,不要出现负数prefixSum += k;}// 在map中找之前有多少个也比k的倍数大prefixSum的,每一个和当前部分相减都是一个有效连续子区间int preCnt = map.getOrDefault(prefixSum, 0);count += preCnt;map.put(prefixSum, preCnt + 1); // 更新map中比k的倍数大prefixSum的前缀序列个数}return count;}
}
974. Subarray Sums Divisible by K [Medium]相关推荐
- leetcode 974. Subarray Sums Divisible by K
974. Subarray Sums Divisible by K 题意:给你一个数组A和一个数K,求改数组有多少连续子序列的和能被K整除. 思路:简单DP.假设sum[i]表示[0-i]的求和,那么 ...
- leetcode 974 Subarray Sums Divisible by K
leetcode 974 Subarray Sums Divisible by K 1.题目描述 2.解题思路 3.Python代码 1.题目描述 给定一个整数数组 A,返回其中元素之和可被 K 整除 ...
- 【leetcode】974. Subarray Sums Divisible by K
题目如下: Given an array A of integers, return the number of (contiguous, non-empty) subarrays that have ...
- LeetCode:974. Subarray Sums Divisible by K - Python
974. 和可被 K 整除的子数组 问题描述: 给定一个整数数组 A,返回其中元素之和可被K整除的(连续.非空)子数组的数目. 示例: 输入:A = [4,5,0,-2,-3,1], K = 5 输出 ...
- 974. Subarray Sums Divisible by K
Title 给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续.非空)子数组的数目. 示例: 输入:A = [4,5,0,-2,-3,1], K = 5 输出:7 解释: 有 7 个子数组满 ...
- leetcode 974. Subarray Sums Divisible by K的解法(统计共同余数)
题目大意:给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续.非空)子数组的数目 大致思路:比如数组A = [1,2,1], K=2,那么1%2 =1,(1+2)%2=1,所以 {2}是符合 ...
- LeetCode 974. Subarray Sums Divisible by K--Python解法--数学题--取模求余
LeetCode 974. Subarray Sums Divisible by K–Python解法–数学题–取模求余 LeetCode题解专栏:LeetCode题解 LeetCode 所有题目总结 ...
- 【LeetCode】713. Subarray Product Less Than K 乘积小于 K 的子数组
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 文章目录 题目描述 题目大意 解题方法 滑动窗口 复杂度 分享滑动窗口模板 总结 日期 ...
- 713. Subarray Product Less Than K
1.题目描述 输入数组(positive)和一个k,求数组中有多少个subarray乘积是小于k的. 2.思路 碰到subarray问题,有几个方案: 1.动归[求连续最大什么的] 2.two poi ...
最新文章
- python画直方图成绩分析-使用Python绘制直方图和正态分布曲线
- 关于按值传递和按引用传递(送给这个方面的新手——包括我自己)
- 科大星云诗社动态20220104
- 【学术相关】研究生、博士生全程只靠自己能否发一篇 SCI?
- DataSet.Relations 属性
- C# WPF开源控件库:MahApps.Metro
- Android 编码规范:(六)消除过期的对象引用
- 每天进步一点点《ML - 高斯混合模型》
- TCP/IP协议栈:TCP超时重传机制
- java日期互转:LocalDateTime、String、Instant、Date
- 测试freenas9.1搭建iscsi磁盘库
- HTML的Demo实例
- 如何下载中国卫星地图高清版大图
- hadoop之大数据生态系统的前世今生
- 关于Windows-Linux双系统的启动引导
- poi-java导出word的表格中换行
- 让Kodu动起来---Kodu少儿编程第五天
- input常见输入限制及金额转货币
- java syslog-ng_syslog-ng详细安装配置
- 电脑上做的ppt拿到别的电脑或手机上播放的时候字体错位的解决方法