Contiguous Array
Posted timhy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Contiguous Array相关的知识,希望对你有一定的参考价值。
2018-07-08 13:24:31
问题描述:
问题求解:
问题规模已经给出是50000量级,显然只能是O(n),至多O(nlogn)的复杂度。本题使用DP和滑动数组都比较棘手,这里给出的方案是preSum + HashMap的策略来进行解决,可以说方法是比较巧妙的。
public int findMaxLength(int[] nums) { int res = 0; HashMap<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) if (nums[i] == 0) nums[i] = -1; int sum = 0; map.put(0, -1); for (int i = 0; i < nums.length; i++) { sum += nums[i]; if (map.containsKey(sum)) res = Math.max(res, i - map.get(sum)); else map.put(sum, i); } return res; }
以上是关于Contiguous Array的主要内容,如果未能解决你的问题,请参考以下文章
leetcode 525. Contiguous Array
leetcode 525. Contiguous Array
[LeetCode] Contiguous Array 邻近数组