525. 連續(xù)數(shù)組

image.png

解法

巧妙地將0轉(zhuǎn)換成-1,利用counter記錄前綴和所在的位置,這樣兩個相同的前綴和之間的長度就是連續(xù)的相同數(shù)據(jù)的0和1.

class Solution {
    public int findMaxLength(int[] nums) {
       int maxLength = 0;
       Map<Integer, Integer> map = new HashMap<>();
       int counter = 0;
       map.put(counter, -1);
       for (int i = 0; i < nums.length; i++) {
        int num = nums[i];
        if (num == 0) {
            counter += -1;
        } else {
            counter += 1;
        }
        if (map.containsKey(counter)) {
            maxLength = Math.max(maxLength, i - map.get(counter));    
        } else {
            map.put(counter, i);
        }
       } 
       return maxLength;                    
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容