陣列 矩陣清零

2021-07-13 02:23:58 字數 1077 閱讀 2432

給定乙個矩陣,如果有零元素那麼就將零元素所在的行和列都置為零。

given a m x n matrix, if an element is 0, set its entire row and column to 0. do it in place.

題目的難點就在於,如果遇到零元素之後馬上在矩陣上操作,將所在的行和列都置為零。在接下來的遍歷中,如果你再遇到零,你講不清楚是原矩陣的零還是你修改之後的零。所以,一種方法就是先通過兩個陣列來記錄該行該列上有沒有零元素,等對矩陣遍歷完之後再統一修改即可

方法一:新開闢兩個陣列,記錄每行和每列是否存在 0,空間複雜度為(m+n)

public class solution {

public void setzeroes(int matrix) {

if(matrix == null||matrix.length == 0||matrix[0].length == 0)

return;

boolean row=new boolean[matrix.length];

boolean col=new boolean[matrix[0].length];

//遍歷matrix一次,記錄有0的行和列

for(int i=0;i

如果matrix中有乙個0,那麼該row,col的行和列都為0,那麼之後該行和列就能用來儲存解法二的行列了。空降o(1)

matrix[row][k]用來儲存第k列是否有0

matrix[k][col]用來儲存第k行是否有0

public class solution {

public void setzeroes(int matrix) {

if(matrix == null||matrix.length == 0||matrix[0].length == 0)

return;

boolean firstzero=false;

int row=0;

int col=0;

//遍歷matrix一次,找到第乙個0的位置

for(int i=0;i

開燈問題與陣列清零

分析 用aa 表示編號為1,2,3,4,n的燈是否開著。模擬這些操作即可 注意1menset a,0,sizeof a 的作用是吧陣列a清零,它也在string.h中定義。雖然也能用for迴圈完成相同的任務,但是用memset又方便又快捷。另乙個技巧在輸出 為了避免輸出多餘的空格,設定了乙個標誌變數...

CSS樣式清零

摘自某國外 h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,...

人生需要清零

之前看到張亞勤的一篇博文 轉型是一場大戰役 講的是微軟這個大公司如何 清零 放下大公司的包袱,用創業者一無所有的心態去重新思考公司戰略。文中提到,微軟美國總部參加每年一度的戰略會議,史蒂夫 微軟ceo 在會上多次提出要 清零 回到 初始狀態 這就是說,微軟這個差不多十萬人的公司,要 重新 來過,用創...