日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

经典算法面试题目-置矩阵行列元素为0(1.7)

發(fā)布時(shí)間:2025/7/25 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 经典算法面试题目-置矩阵行列元素为0(1.7) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目

Write an algorithm such that if an element in an MxN matrix is 0, its entire row and column is set to 0.

寫一個(gè)函數(shù)處理一個(gè)MxN的矩陣,如果矩陣中某個(gè)元素為0,那么把它所在的行和列都置為0.

解答

簡單題。遍歷一次矩陣,當(dāng)遇到元素等于0時(shí),記錄下這個(gè)元素對應(yīng)的行和列。
可以開一個(gè)行數(shù)組row和列數(shù)組col,當(dāng)元素a[i][j]等于0時(shí), 就把row[i]和col[j]置為1。
第二次遍歷矩陣時(shí),當(dāng)某個(gè)元素對應(yīng)的行row[i] 或列col[j]被設(shè)置為1,說明該元素在需要被置0的行或列上,因此將它(行/列)置0。

代碼如下:

#include <iostream> #include <cstring> using namespace std;void zero(int a[5][5], int m, int n){bool row[m], col[n];memset(row, 0, sizeof(row));memset(col, 0, sizeof(col));for(int i=0; i<m; ++i)for(int j=0; j<n; ++j)if(a[i][j] == 0){row[i] = true;col[j] = true;}for(int i=0; i<m; ++i)for(int j=0; j<n; ++j)if(row[i] || col[j])a[i][j] = 0; }int main() {int a[5][5] = {{1, 2, 3, 4,5},{5, 6, 0, 7,8},{9, 0, 1, 1,2},{3, 4, 1, 1,9},{4, 3, 0, 6,9}};for(int i=0; i<5; ++i){for(int j=0; j<5; ++j)cout<<a[i][j]<<" ";cout<<endl;}cout<<endl;zero(a, 5, 5);for(int i=0; i<5; ++i){for(int j=0; j<5; ++j)cout<<a[i][j]<<" ";cout<<endl;}cout<<endl;return 0; }

輸出結(jié)果:

轉(zhuǎn)載于:https://www.cnblogs.com/webmen/p/5739079.html

總結(jié)

以上是生活随笔為你收集整理的经典算法面试题目-置矩阵行列元素为0(1.7)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。