1. 문제 및 예시
Given a binary array, find the maximum length of a contiguous subarray with equal number of 0 and 1.
Example 1:
Input: [0,1]
Output: 2
Explanation: [0, 1] is the longest contiguous subarray with equal number of 0 and 1.
Example 2:
Input: [0,1,0]
Output: 2
Explanation: [0, 1] (or [1, 0]) is a longest contiguous subarray with equal number of 0 and 1.
** The length of the given binary array will not exceed 50,000.
2. 풀이
/**
* @param {number[]} nums
* @return {number}
*/
var findMaxLength = function(nums) {
const map = {};
map[0] = -1;
let sum = 0, max = 0;
for (let i = 0; i < nums.length; i++) {
sum += nums[i] == 1 ? 1 : -1;
if (sum in map) { max = Math.max(max, i - map[sum]); }
else { map[sum] = i; }
}
return max;
};
** 변수를 둬서 1을 만나면 1, 아니면 -1을 더함.
** 변수값과 동일한 값을 만나면 그 사이의 하위배열은 0과 1의 수를 가져야 합니다.
3. 결과
555 / 555 test cases passed.
Status: Accepted
Runtime: 140 ms
Memory Usage: 46.2 MB
반응형
'Programming' 카테고리의 다른 글
[JIRA] Ubuntu Server에 JIRA 설치하기 (0) | 2020.04.28 |
---|---|
[LeetCode] [Medium] [JS] 238. Product of Array Except Self (0) | 2020.04.16 |
[LeetCode] [Easy] [JS] 1046. Last Stone Weight (0) | 2020.04.12 |
[LeetCode] [Easy] [JS] 543. Diameter of Binary Tree (0) | 2020.04.12 |
[LeetCode] [Easy] [JS] 155. Min Stack (0) | 2020.04.11 |