Skip to content

Instantly share code, notes, and snippets.

@IngeFrodo
Created April 14, 2020 14:56
Show Gist options
  • Save IngeFrodo/f00e7fe1e3502249cc92a8396fa791ea to your computer and use it in GitHub Desktop.
Save IngeFrodo/f00e7fe1e3502249cc92a8396fa791ea to your computer and use it in GitHub Desktop.
class Solution {
public int findMaxLength(int[] nums) {
int maxLen = 0;
int sum = nums.length;
int[] prevSums = new int[2 * nums.length + 1];
for (int i = 0; i < prevSums.length; i++) {
prevSums[i] = -2;
}
prevSums[nums.length] = -1;
for (int i = 0; i < nums.length; i++) {
sum += (nums[i] * 2 - 1);
if (prevSums[sum] == -2) {
prevSums[sum] = i;
} else {
maxLen = Math.max(maxLen, i - prevSums[sum]);
}
}
return maxLen;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment