连续的子数组和

给定一个包含非负数的数组和一个目标整数 k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2,总和为 k 的倍数,即总和为 n*k,其中 n 也是一个整数

示例 1:

输入: [23,2,4,6,7], k = 6

输出: True

解释: [2,4] 是一个大小为 2 的子数组,并且和为 6。

示例 2:

输入: [23,2,6,4,7], k = 6

输出: True

解释: [23,2,6,4,7]是大小为 5 的子数组,并且和为 42。

说明:

  1. 数组的长度不会超过10,000。
  2. 你可以认为所有数字总和在 32 位有符号整数范围内。

同余的两段相减后的段和模k必为0

 import java.util.HashMap;

 public class Solution {
public boolean checkSubarraySum(int[] nums, int k) {
HashMap<Integer, Integer> map = new HashMap();
map.put(0, -1);
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum += nums[i];
Integer prev = map.get(k == 0 ? sum : sum % k);
if (prev != null) {
if (i - prev > 1) {
return true;
}
} else {
map.put(k == 0 ? sum : sum % k, i);
}
}
return false;
}
}

最新文章

  1. C语言基础补习
  2. MySQL分表(Partition)学习研究报告
  3. IOSUIcontrol事件
  4. CentOS提示::unknown filesystem type &#39;ntfs&#39;.解决
  5. Android开发之异步通信Handler机制
  6. 纯Javascript实现Windows 8 Metro风格实现
  7. 解决:Determining IP Information for eth0 一直停留 无法进入系统
  8. ENode框架Conference案例转载
  9. 【转】关于JVM CPU资源占用过高的问题排查
  10. insert ,update 以及merge 的使用
  11. python用类实现xrange
  12. AUTOCAD参数约束功能
  13. 详解JSOUP的Select选择器语法
  14. grep,find
  15. java.lang.ClassCastException: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$Text
  16. windows BLE编程 net winform 连接蓝牙4.0
  17. python 全局变量与局部变量
  18. vue 单向数据流 &amp; 双向绑定
  19. 使用git和gitlab进行协同开发流程
  20. 亚马逊EC2

热门文章

  1. sql server 2012不能全部用到CPU的逻辑核心数的问题
  2. .net密码找回
  3. Codeforces Round #327 (Div. 2) B Rebranding(映射)
  4. 2018.6.4 Oracle数据库预定义的异常列表
  5. Linux Shell 几个特殊符号命令 &amp; 、&amp;&amp; 、 ||
  6. [BZOJ] 2044: 三维导弹拦截
  7. MySQL - GROUP_CONCAT 使用方法
  8. [mysql] Can&#39;t read from messagefile
  9. maven引入dubbo包后启动报错
  10. 十八、MySQL 排序