525. Contiguous Array

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.

這題我沒做出來诀浪。以為可以用DP實際上好像不行轴合。Solution答案如下。

brute force

brute force的寫法是判斷每個subarray是否滿足條件锌唾,但是怎么遍歷每個subarray呢送巡?其實也是值得參考的:

    public int findMaxLength(int[] nums) {
        int maxlen = 0;
        for (int start = 0; start < nums.length; start++) {
            int zeroes = 0, ones = 0;
            for (int end = start; end < nums.length; end++) {
                if (nums[end] == 0) {
                    zeroes++;
                } else {
                    ones++;
                }
                if (zeroes == ones) {
                    maxlen = Math.max(maxlen, end - start + 1);
                }
            }
        }
        return maxlen;
    }

我感覺內(nèi)層循環(huán)也能寫成從0到start來做若贮。

O(n)做法

第一種是利用數(shù)組嗦玖,O(2n+1)硬梁,我沒看;看了第二種Map的方法临梗,看了Solutions里的動畫挺容易理解的涡扼,照著它的動畫實現(xiàn)了一下代碼。不過我感覺過段時間還是會忘盟庞。

    public int findMaxLength(int[] nums) {
        if (nums == null || nums.length == 0) return 0;
        int maxLen = 0;
        int count = 0;
        Map<Integer, Integer> map = new HashMap<>();
        //對于count==0的情況吃沪,要取index+1跟maxLen比,所以put"0,-1"
        map.put(0, -1);
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == 0) {
                count++;
            } else {
                count--;
            }
            if (!map.containsKey(count)) {
                map.put(count, i);
                //這樣不能處理0,1,0,1這種case
//              if (count == 0) {
//                  maxLen = i + 1;
//              }
            } else {
                maxLen = Math.max(i - map.get(count), maxLen);
            }
        }
        return maxLen;
    }
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末什猖,一起剝皮案震驚了整個濱河市巷波,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卸伞,老刑警劉巖抹镊,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異荤傲,居然都是意外死亡垮耳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門遂黍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來终佛,“玉大人,你說我怎么就攤上這事雾家×逭茫” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵芯咧,是天一觀的道長牙捉。 經(jīng)常有香客問我,道長敬飒,這世上最難降的妖魔是什么邪铲? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮无拗,結(jié)果婚禮上带到,老公的妹妹穿的比我還像新娘。我一直安慰自己英染,他們只是感情好揽惹,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著四康,像睡著了一般搪搏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上箭养,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天慕嚷,我揣著相機與錄音哥牍,去河邊找鬼毕泌。 笑死喝检,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的撼泛。 我是一名探鬼主播挠说,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼愿题!你這毒婦竟也來了损俭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤潘酗,失蹤者是張志新(化名)和其女友劉穎杆兵,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仔夺,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡琐脏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了缸兔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片日裙。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惰蜜,靈堂內(nèi)的尸體忽然破棺而出昂拂,到底是詐尸還是另有隱情,我是刑警寧澤抛猖,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布格侯,位于F島的核電站,受9級特大地震影響财著,放射性物質(zhì)發(fā)生泄漏养交。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一瓢宦、第九天 我趴在偏房一處隱蔽的房頂上張望碎连。 院中可真熱鬧,春花似錦驮履、人聲如沸鱼辙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽倒戏。三九已至,卻和暖如春恐似,著一層夾襖步出監(jiān)牢的瞬間杜跷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留葛闷,地道東北人憋槐。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像淑趾,于是被迫代替她去往敵國和親阳仔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經(jīng)驗扣泊。 張土汪:刷leetcod...
    土汪閱讀 12,740評論 0 33
  • Problem4.19:Study the behavior of our model for Hyperion ...
    xuqiuhao閱讀 254評論 0 0
  • 某人得一寶貝: 紫砂壺近范, 每夜都放床頭。 一次失手將紫砂壺 壺蓋打翻到地上延蟹, 驚醒后 甚惱评矩, 壺蓋沒了,留壺身何用...
    棘陽閱讀 126評論 0 0