[LeetCode]Continuous Subarray Sum

来源:互联网 发布:7zip解压软件下载 编辑:程序博客网 时间:2024/06/04 23:24

同样是动态规划的思想,性能最好的用补码轮询的方法做的,效率极高,代码如下

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


一定练好动态规划

2017/03/22

0 0
原创粉丝点击