国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

南陽網(wǎng)站建設(shè)公司湖南官網(wǎng)網(wǎng)站推廣軟件

南陽網(wǎng)站建設(shè)公司,湖南官網(wǎng)網(wǎng)站推廣軟件,wordpress酷播,聚名網(wǎng)app下載從0開始的秋招刷題路,記錄下所刷每道題的題解,幫助自己回顧總結(jié) 73. 矩陣置零 給定一個(gè) m x n 的矩陣,如果一個(gè)元素為 0 ,則將其所在行和列的所有元素都設(shè)為 0 。請使用 原地 算法。 示例 1: 輸入:mat…

從0開始的秋招刷題路,記錄下所刷每道題的題解,幫助自己回顧總結(jié)

73. 矩陣置零

給定一個(gè) m x n 的矩陣,如果一個(gè)元素為 0 ,則將其所在行和列的所有元素都設(shè)為 0 。請使用 原地 算法。

示例 1:
在這里插入圖片描述

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

示例 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]]

提示:
m == matrix.length
n == matrix[0].length
1 <= m, n <= 200
?231-2^31?231 <= matrix[i][j] <= 231?12^31 - 1231?1

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

方法一
思路:用兩個(gè)set分別記錄需要置0的行和需要置0的列。第一次遍歷矩陣時(shí),若發(fā)現(xiàn)一個(gè)元素為0,則將其行和列值分別加入到兩個(gè)set中。第二次遍歷矩陣時(shí),將行set中的行全部置0,將列set中的列全部置0。

public void setZeroes(int[][] matrix) {if(matrix == null || matrix.length == 0)return;int m = matrix.length, n = matrix[0].length;Set<Integer> row = new HashSet<Integer>();Set<Integer> col = new HashSet<Integer>();for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){if(matrix[i][j] == 0){row.add(i);col.add(j);}}}for(int i : row){for(int j = 0; j < n; j++)matrix[i][j] = 0;}for(int j : col){for(int i = 0; i < m; i++)matrix[i][j] = 0;}
}

時(shí)間復(fù)雜度:O(m×n)
空間復(fù)雜度:O(m+n) 最壞情況是矩陣中全部元素為0的情況,這時(shí)兩個(gè)set的大小分別為m和n。

方法二
思路:不用額外空間,讓首行和首列記錄某列和某行是否有0

算法步驟:
首先用兩個(gè)布爾類型變量firstRow和firstCol分別記錄矩陣的首行和首列中是否有0
遍歷除首行和首列外的所有元素,若元素matrix[i][j]為0,則將它對應(yīng)的首行和首列中的元素matrix[i][0]和matrix[0][j]置為0,意為此行和列后續(xù)需要被置0(由于修改后首行和首列是否有0的信息會(huì)被破壞掉,因此需要有之前的步驟一)
遍歷首行和首列,若發(fā)現(xiàn)首行中有元素為0,則將此元素所處的列全部置0,若發(fā)現(xiàn)首列中有元素為0,則將此元素所處的行全部置0。
根據(jù)步驟一的布爾類型變量firstRow和firstCol來判斷首行和首列是否需要被置0。

public void setZeroes(int[][] matrix) {if(matrix == null || matrix.length == 0)return;int m = matrix.length, n = matrix[0].length;boolean firstRow = false, firstCol = false;//步驟一for(int i = 0; i < m; i++){if(matrix[i][0] == 0)firstCol = true;}for(int j = 0; j < n; j++){if(matrix[0][j] == 0)firstRow = true;}//步驟二for(int i = 1; i < m; i++){for(int j = 1; j < n; j++){if(matrix[i][j] == 0){matrix[i][0] = 0;matrix[0][j] = 0;}}}//步驟三for(int i = 1; i < m; i++){if(matrix[i][0] == 0){for(int j = 0; j < n; j++)matrix[i][j] = 0;}}for(int j = 1; j < n; j++){if(matrix[0][j] == 0){for(int i = 0; i < m; i++)matrix[i][j] = 0;}}//步驟四if(firstRow){for(int j = 0; j < n; j++)matrix[0][j] = 0;}if(firstCol){for(int i = 0; i < m; i++)matrix[i][0] = 0;}
}

時(shí)間復(fù)雜度:O(m×n)
空間復(fù)雜度:O(1)

http://m.aloenet.com.cn/news/29252.html

相關(guān)文章:

  • 網(wǎng)站驗(yàn)證碼怎么做steam交易鏈接在哪
  • 溧陽做網(wǎng)站哪家好零基礎(chǔ)學(xué)什么技術(shù)好
  • html5畢業(yè)設(shè)計(jì)題目大全福州百度推廣排名優(yōu)化
  • 信用門戶網(wǎng)站建設(shè)專家評價(jià)免費(fèi)網(wǎng)站收錄網(wǎng)站推廣
  • 一個(gè)域名權(quán)重3如果做網(wǎng)站的話權(quán)重會(huì)降為0嗎百度熱度榜搜索趨勢
  • 網(wǎng)站建設(shè)平臺(tái)策劃電腦優(yōu)化是什么意思
  • 陜西省建設(shè)銀行網(wǎng)站6seo如何優(yōu)化
  • ppt歡迎頁面模板網(wǎng)絡(luò)營銷中的seo與sem
  • 不在百度做推廣他會(huì)把你的網(wǎng)站排名弄掉怎么可以讓百度快速收錄視頻
  • 昆明網(wǎng)站建設(shè)-中國互聯(lián)精準(zhǔn)客戶數(shù)據(jù)采集軟件
  • 小學(xué)網(wǎng)站源碼php個(gè)人在線做網(wǎng)站免費(fèi)
  • 做網(wǎng)站話掙錢嗎google下載官網(wǎng)
  • 武平縣網(wǎng)站建設(shè)搜索引擎競價(jià)廣告
  • seo優(yōu)化價(jià)格seo1搬到哪里去了
  • 樂清網(wǎng)站設(shè)計(jì)公司哪家好百度 營銷中心
  • 哈爾濱自助建站模板網(wǎng)站推廣軟件
  • 萊蕪金點(diǎn)子信息港最新招聘信息港南寧seo優(yōu)化公司
  • 山東濟(jì)南網(wǎng)站建設(shè)公司深圳公司網(wǎng)絡(luò)推廣該怎么做
  • 酒類網(wǎng)站建設(shè)方案百度推廣客戶端手機(jī)版
  • 網(wǎng)站推廣計(jì)劃怎么寫青島 google seo
  • 唐山網(wǎng)站建設(shè)哪家優(yōu)惠2000元代理微信朋友圈廣告
  • 單頁面網(wǎng)站制作視頻線上推廣方案怎么寫
  • 投訴做網(wǎng)站的電話長沙seo 優(yōu)化選智投未來no1
  • 網(wǎng)站建設(shè)與管理課程代碼寧波seo關(guān)鍵詞優(yōu)化方法
  • 安化建設(shè)局網(wǎng)站微信營銷策略有哪些
  • 知名電子商務(wù)網(wǎng)站英雄聯(lián)盟世界排名
  • 帶視頻的網(wǎng)站模板免費(fèi)數(shù)據(jù)分析網(wǎng)站
  • 安全達(dá)標(biāo)建設(shè)網(wǎng)站鄭州計(jì)算機(jī)培訓(xùn)機(jī)構(gòu)哪個(gè)最好
  • 燕郊建設(shè)局網(wǎng)站建網(wǎng)站專業(yè)
  • 展示型網(wǎng)站舉例seo專員崗位職責(zé)