public class Solution {
public int FindMaxLength(int[] nums) {
Dictionary<int, int> counts = new()
{
{0, -1}
};
int count = 0;
int answer = 0;
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] == 1)
count++;
else
count--;
if (counts.ContainsKey(count))
answer = Math.Max(answer, i - counts[count]);
else
counts[count] = i;
}
return answer;
}
}
public class Solution {
public int FindMaxLength(int[] nums) {
Dictionary<int, int> counts = new()
{
{0, -1}
};
int count = 0;
int answer = 0;
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] == 1)
count++;
else
count--;
if (counts.ContainsKey(count))
answer = Math.Max(answer, i - counts[count]);
else
counts[count] = i;
}
return answer;
}
}