最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java C++ 算法題解leetcode1582二進(jìn)制矩陣特殊位置

 更新時(shí)間:2022年09月14日 10:19:30   作者:AnjaVon  
這篇文章主要為大家介紹了Java C++ 算法題解leetcode1582二進(jìn)制矩陣特殊位置示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目要求

思路:模擬

  • 直接按題意模擬,先算出每行每列中“111”的個(gè)數(shù),然后判斷統(tǒng)計(jì)行列值均為111的位置即可。

Java

class Solution {
    public int numSpecial(int[][] mat) {
        int n = mat.length, m = mat[0].length;
        int res = 0;
        int[] row = new int[n], col = new int[m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                row[i] += mat[i][j];
                col[j] += mat[i][j];
            }
        }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if (mat[i][j] == 1 && row[i] == 1 && col[j] == 1)
                    res++;
            }
        }
        return res;
    }
}
  • 時(shí)間復(fù)雜度:O(m×n)
  • 空間復(fù)雜度:O(m+n)

C++

class Solution {
public:
    int numSpecial(vector<vector<int>>& mat) {
        int n = mat.size(), m = mat[0].size();
        int res = 0;
        vector<int> row(n), col(m);
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                row[i] += mat[i][j];
                col[j] += mat[i][j];
            }
        }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if (mat[i][j] == 1 && row[i] == 1 && col[j] == 1)
                    res++;
            }
        }
        return res;
    }
};
  • 時(shí)間復(fù)雜度:O(m×n)
  • 空間復(fù)雜度:O(m+n)

Rust

  • 這里的迭代函數(shù)用得不是很熟練,參考了好多才勉強(qiáng)理解下來。
impl Solution {
    pub fn num_special(mat: Vec<Vec<i32>>) -> i32 {
        let row = mat.iter().map(|row| row.iter().sum::<i32>()).collect::<Vec<_>>();
        let col = (0..mat[0].len()).map(|i| mat.iter().map(|col| col[i]).sum::<i32>()).collect::<Vec<_>>();
        (0..mat.len()).fold(0, |res, i| res + (0..mat[i].len()).filter(|&j| mat[i][j] == 1 && row[i] == 1 &&col[j] == 1).count() as i32)
    }
}
  • 時(shí)間復(fù)雜度:O(m×n)
  • 空間復(fù)雜度:O(m+n)

以上就是Java C++ 算法題解leetcode1582二進(jìn)制矩陣特殊位置的詳細(xì)內(nèi)容,更多關(guān)于Java C++ 二進(jìn)制矩陣特殊位置的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

云安县| 汉源县| 高淳县| 三穗县| 桃源县| 襄城县| 宜阳县| 姜堰市| 交口县| 梁河县| 双江| 池州市| 韶关市| 尉氏县| 同心县| 罗平县| 平泉县| 新邵县| 韶山市| 奎屯市| 南和县| 玉门市| 正蓝旗| 高邑县| 南开区| 勐海县| 栖霞市| 南昌市| 通榆县| 突泉县| 犍为县| 昌邑市| 松桃| 顺义区| 新兴县| 泾阳县| 和静县| 京山县| 建始县| 神农架林区| 马山县|