給定乙個 m x n 的矩陣,如果乙個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地演算法。
遍歷整個矩陣,如果matrix[i][j] == 0 就將第 i 行和第 j 列的第乙個元素標記。
第一行和第一列的標記是相同的,都是matrix[0][0],所以需要乙個額外的變數告知第一列是否被標記,同時用matrix[0][0] 繼續表示第一行的標記。
然後,從第二行第二列的元素開始遍歷,如果第 r 行或者第 c 列被標記了,那麼就將matrix[r][c] 設為 0。這裡第一行和第一列的作用就相當於方法一中的 row_set 和 column_set 。
然後我們檢查是否matrix[0][0] == 0 ,如果是則賦值第一行的元素為零。
然後檢查第一列是否被標記,如果是則賦值第一列的元素為零。
/**如果乙個元素為 0,則將其所在行和列的所有元素都設為 0
** @param matrix
*/public
void
setzeroes
(int
matrix)
for(
int j=
1;j}for
(int i=
1;i}if
(matrix[0]
[0]==
0)}if
(iscol)
}}
leetcode 面試題73 矩陣置零
2020 3 21 打卡 給定乙個 m x n 的矩陣,如果乙個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地演算法。示例 1 輸入 1,1,1 1,0,1 1,1,1 輸出 1,0,1 0,0,0 1,0,1 示例 2 輸入 0,1,2,0 3,4,5,2 1,3,1,5 輸出 0,...
劍指offer面試題7
面試題7 用兩個棧實現佇列 using namespace std template class cqueue 預備知識 佇列 佇列也是一種常見的資料結構 特點是先進先出 fifo 在stl中有stack和queue兩個容器 template class stack 成員函式 empty size ...
劍指offer面試題11
面試題1 數值的整數的次方 題目 實現函式double power double base,int exponent 求base的 exponent次方。不得使用庫函式,同時不需要考慮大數問題。思路 首先應該明確指數的可能取值 正整數,0,負整數 另外還需要考慮底數是0的情形。對於負整指數,我們可以...