Java?C++?leetcode面試零矩陣
更新時間:2022年10月17日 11:52:47 作者:AnjaVon
這篇文章主要為大家介紹了Java?C++題解leetcode面試零矩陣示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
題目要求
思路:模擬
- 定義兩個數(shù)組分別記錄每行or每列中為0的元素;
- 0所在的行列清零也就意味著元素所在行or列有0則置零【廢話連篇】;
- 所以一次遍歷找出有0的行列,一次遍歷根據(jù)其將相應元素置零。
Java
class Solution { public void setZeroes(int[][] matrix) { int n = matrix.length, m = matrix[0].length; boolean[] rows = new boolean[n], cols = new boolean[m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) if (matrix[i][j] == 0) rows[i] = cols[j] = true; } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) if (rows[i] || cols[j]) matrix[i][j] = 0; } } }
- 時間復雜度:O(n×m)
- 空間復雜度:O(n+m)
C++
class Solution { public: void setZeroes(vector<vector<int>>& matrix) { int n = matrix.size(), m = matrix[0].size(); bool rows[n], cols[m]; memset(rows, 0, sizeof(rows)); memset(cols, 0, sizeof(cols)); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) if (matrix[i][j] == 0) rows[i] = cols[j] = true; } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) if (rows[i] || cols[j]) matrix[i][j] = 0; } } };
- 時間復雜度:O(n×m)
- 空間復雜度:O(n+m)
Rust
impl Solution { pub fn set_zeroes(matrix: &mut Vec<Vec<i32>>) { let (n, m) = (matrix.len(), matrix[0].len()); let (mut rows, mut cols) = (vec![false; n], vec![false; m]); for i in 0..n { for j in 0..m { if matrix[i][j] == 0 { rows[i] = true; cols[j] = true; } } } for i in 0.. n { for j in 0..m { if rows[i] || cols[j] { matrix[i][j] = 0; } } } } }
- 時間復雜度:O(n×m)
- 空間復雜度:O(n+m)
總結(jié)
因為是中等題所以糾結(jié)了半天是不是有什么精巧奇妙的算法解題……emmmm結(jié)果就只是通過修改給出數(shù)組來標記,空間復雜度能降到常數(shù)了,有意義但不大
以上就是Java C++ leetcode面試零矩陣的詳細內(nèi)容,更多關(guān)于Java C++ 面試零矩陣的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++替換棧中和.data中的cookie實現(xiàn)步驟詳解
這篇文章主要介紹了C++替換棧中和.data中的cookie實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2022-10-10C++將音頻PCM數(shù)據(jù)封裝成wav文件的方法
這篇文章主要為大家詳細介紹了C++將音頻PCM數(shù)據(jù)封裝成wav文件的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01C++實現(xiàn)LeetCode(9.驗證回文數(shù)字)
這篇文章主要介紹了C++實現(xiàn)LeetCode(9.驗證回文數(shù)字),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07