日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php框架 > 框架設(shè)計 > leetcode || 73、Set Matrix Zeroes

leetcode || 73、Set Matrix Zeroes

來源:程序員人生   發(fā)布時間:2015-04-30 08:29:00 閱讀次數(shù):3305次

problem:

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

click to show follow up.

Follow up:

Did you use extra space?
A straight forward solution using O(mn) space is probably a bad idea.
A simple improvement uses O(m + n) space, but still not the best solution.
Could you devise a constant space solution?

Hide Tags
 Array
題意:矩陣出現(xiàn)0,則將轉(zhuǎn)業(yè)和該列置0,注意不要講矩陣全部置0

thinking:

(1)這道題的實現(xiàn)不難,難在怎樣樣控制空間復雜度

(2)空間復雜度為O(m*n)的方法不談,太簡單了。空間復雜度為O(m+n)的方法也容易實現(xiàn),單獨開兩個數(shù)組記錄行和列

(3)重點介紹 空間復雜度為 O(1)的方法:

這里只使用兩個BOOL  變量便可弄定

1、bool  flag_row、 flag_col分別記錄首行和首列是不是有0

2、從第2行和第2列開始遍歷,如果出現(xiàn)0,則將首行和首列的對應位置 置0

3、2第2步完成以后,也是從第2行和第2列開始根據(jù)首行和首列信息填充0;

4、根據(jù)第1步的信息填充首行和首列

該方法是利用首行和首列來保存信息,注意首行和首列要單獨處理。

code:

class Solution { public: void setZeroes(vector<vector<int> > &matrix) { if(matrix.size()==0) return; int m=matrix.size(); int n=matrix[0].size(); bool flag_row=false; bool flag_col=false; /*先斟酌單列或單行的特殊情況*/ if(m==1) { bool flag=false; for(int i=0;i<n;i++) if(matrix[0][i]==0) flag=true; if(flag) { for(int i=0;i<n;i++) matrix[0][i]=0; } return; }//m==1 if(n==1) { bool flag=false; for(int i=0;i<m;i++) if(matrix[i][0]==0) flag=true; if(flag) { for(int i=0;i<m;i++) matrix[i][0]=0; } return; }//n==1 for(int i=0;i<m;i++)//第1列是不是有0,記錄 { if(matrix[i][0]==0) { flag_col=true; break; } } for(int j=0;j<n;j++)//第1行是不是有0,記錄 { if(matrix[0][j]==0) { flag_row=true; break; } } for(int i=1;i<m;i++) //從第2行第2列開始,如果出現(xiàn)0,將第1行和第1列的對應位置置0 for(int j=1;j<n;j++) { if(matrix[i][j]==0) { matrix[0][j]=0; matrix[i][0]=0; } } for(int i=1;i<m;i++)//逐行檢查置0 { if(matrix[i][0]==0) { for(int j=1;j<n;j++)//從第2列開始 matrix[i][j]=0; } } for(int j=1;j<n;j++)//逐列檢查,從第2行開始 { if(matrix[0][j]==0) { for(int i=1;i<m;i++) matrix[i][j]=0; } } if(flag_col) //檢查第1列 { for(int i=0;i<m;i++) matrix[i][0]=0; } if(flag_row) //檢查第1行 { for(int j=0;j<n;j++) matrix[0][j]=0; } } };


生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 优优亚洲精品久久久久久久 | 国产99精品视频 | 亚洲精品国产一区 | 久久精品视频一区 | 日韩久久综合 | 国产人成亚洲第一网站在线播放 | 国产福利不卡 | 久久免费视频网站 | 91久久国产综合久久91精品网站 | 一区免费视频 | 久久99精品国产91久久来源 | 男女激情视频 | 国产一区二区三区免费在线观看 | 在线国产精品自拍 | 日韩免费视频一区二区 | 在线婷婷 | 黄色在线观看视频网站 | 久久桃色 | 日韩av网站在线 | 热99视频| 国产一区二区三区在线免费看 | 性毛片 | 日本久久一区二区 | 国产嫩草影院 | 久热导航| 国产午夜精品一区二区三区 | 91香蕉视频好色先生 | 一二区成人影院电影网 | 香蕉成人在线 | 国产精品成人在线 | 亚洲欧洲免费视频 | 国产精品美女久久久久久久网站 | 国产精品视频一二三区 | 欧美成人精精品一区二区频 | 免费一二区 | 国产成人久久 | 91精品亚洲 | 中文字幕 自拍偷拍 | 久久久三级 | 99久久精品免费看国产免费软件 | 日本三级全黄少妇三2023 |