[LeetCode]Continuous Subarray Sum
阿新 • • 發佈:2019-01-04
同樣是動態規劃的思想,效能最好的用補碼輪詢的方法做的,效率極高,程式碼如下
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