Leetcode 矩陣置零

題目描述(中等難度)

給定一個(gè) m x n 的矩陣铛楣,如果一個(gè)元素為 0 铝宵,則將其所在行和列的所有元素都設(shè)為 0 首懈。請(qǐng)使用 原地 算法翎冲。

進(jìn)階

  • 一個(gè)直觀的解決方案是使用 O(mn) 的額外空間垂睬,但這并不是一個(gè)好的解決方案。
  • 一個(gè)簡(jiǎn)單的改進(jìn)方案是使用 O(m + n) 的額外空間抗悍,但這仍然不是最好的解決方案驹饺。
  • 你能想出一個(gè)僅使用常量空間的解決方案嗎?

示例 1:

示例 1

輸入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
輸出:[[1,0,1],[0,0,0],[1,0,1]]

示例2:

示例2

輸入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
輸出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

解題思路

重置零表示矩陣中如果有一個(gè)零檐春,那么將其同行同列都設(shè)為0逻淌,下圖第二行,第二列為零疟暖,使用紅色框標(biāo)識(shí)元素都需要設(shè)置成零卡儒。


解題思路

解法一 (空間復(fù)雜度 O(mn))

  • 使用暴力破解,復(fù)制一個(gè)矩陣備份俐巴,遍歷復(fù)制矩陣骨望,遇到零就把當(dāng)前行和列重置零。

為何要使用復(fù)制矩陣呢欣舵?如果直接遍歷矩陣擎鸠,如果第一行第一列為零,做了重置零以后缘圈,行全部都重置為零劣光,遍歷后面的列全部都會(huì)設(shè)置成零袜蚕。

解法一

解法二 (空間復(fù)雜度O(m+n))

  • 優(yōu)化一下解法一的算法,如果一個(gè)行或者列是零绢涡,我們只需要標(biāo)記一下該行或者該列為零即可牲剃。
  • 使用兩個(gè)數(shù)組記錄對(duì)應(yīng)的行和列是否有零出現(xiàn)。
  • 記錄結(jié)束之后雄可,遍歷矩陣凿傅,如果記錄的行或者列有零,元素重置零数苫。


    解法二

解法三 (空間復(fù)雜度O(1))

  • 在解法二的基礎(chǔ)上聪舒,把標(biāo)記行或者列換成標(biāo)記在矩陣上第一列和第一行。
  • 遍歷第一行虐急,如果為零箱残,則同列全部置為零。
  • 遍歷第一列戏仓,如果為零疚宇,則同行全部置為零亡鼠。
  • 因?yàn)楸闅v列是在遍歷行之后赏殃,所以遍歷行的時(shí)候是不能遍歷第一列的。只能開始記錄一個(gè)標(biāo)記位间涵,標(biāo)記第一行仁热、第一列是否存在零。


    解法三

總結(jié)

  • 重置零分別使用了空間復(fù)雜度O(mn)勾哩、O(m+n)抗蠢、O(1)。
  • 矩陣存在零就把行和列都設(shè)置成零思劳,就需要利用好第一行和第一列這屬性迅矛,存在零就在第一行和第一列設(shè)置零,對(duì)于特殊的首位置潜叛,需要添加標(biāo)識(shí)秽褒。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市威兜,隨后出現(xiàn)的幾起案子销斟,更是在濱河造成了極大的恐慌,老刑警劉巖椒舵,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚂踊,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡笔宿,警方通過查閱死者的電腦和手機(jī)犁钟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門棱诱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涝动,你說我怎么就攤上這事军俊。” “怎么了捧存?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵粪躬,是天一觀的道長。 經(jīng)常有香客問我昔穴,道長镰官,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任吗货,我火速辦了婚禮泳唠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宙搬。我一直安慰自己笨腥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布勇垛。 她就那樣靜靜地躺著脖母,像睡著了一般。 火紅的嫁衣襯著肌膚如雪闲孤。 梳的紋絲不亂的頭發(fā)上谆级,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音讼积,去河邊找鬼肥照。 笑死,一個(gè)胖子當(dāng)著我的面吹牛勤众,可吹牛的內(nèi)容都是我干的舆绎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼们颜,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼吕朵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起掌桩,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤边锁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后波岛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茅坛,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贡蓖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曹鸠。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖斥铺,靈堂內(nèi)的尸體忽然破棺而出彻桃,到底是詐尸還是另有隱情,我是刑警寧澤晾蜘,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布邻眷,位于F島的核電站,受9級(jí)特大地震影響剔交,放射性物質(zhì)發(fā)生泄漏肆饶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一岖常、第九天 我趴在偏房一處隱蔽的房頂上張望驯镊。 院中可真熱鬧,春花似錦竭鞍、人聲如沸板惑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冯乘。三九已至,卻和暖如春滨砍,著一層夾襖步出監(jiān)牢的瞬間往湿,已是汗流浹背妖异。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國打工惋戏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人他膳。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓响逢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親棕孙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舔亭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

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