2020年5月26日 星期二

Leetcode題解 C#:五月挑戰DAY26 Contiguous Array

給一個二進位串列,回傳 0 與 1 數量相等的連續子陣列的最長長度。


這次補寫 C# 版的 code。

C# 
public class Solution {
    public int FindMaxLength(int[] nums) {
        int result = 0;
        int counter0 = 0;
        var dp = new Dictionary();
        dp.Add(0,-1);
        for(int i = 0; i < nums.Length; i++)
        {
            counter0 += nums[i] == 0 ? 1 : -1;
            if(dp.ContainsKey(counter0))
                result = Math.Max(result, i - dp[counter0]);
            else
                dp[counter0] = i;            
        }
        return result;
    }
}