2643.一最多的行
链接:2643.一最多的行
难度:Easy
标签:数组、矩阵
简介:给你一个大小为 m x n 的二进制矩阵 mat ,请你找出包含最多 1 的行的下标(从 0 开始)以及这一行中 1 的数目。如果有多行包含最多的 1 ,只需要选择 行下标最小 的那一行。返回一个由行下标和该行中 1 的数量组成的数组。
题解 1 - rust
- 编辑时间:2023-04-16
- 执行用时:20ms
- 内存消耗:2.3MB
- 编程语言:rust
- 解法介绍:同上。
impl Solution {
    pub fn row_and_maximum_ones(mat: Vec<Vec<i32>>) -> Vec<i32> {
        let mut res = vec![0, 0];
        for i in 0..mat.len() {
            let mut cnt = 0;
            for v in mat[i].iter() {
                if *v == 1 {
                    cnt += 1;
                }
            }
            if res[1] < cnt {
                res[0] = i;
                res[1] = cnt;
            }
        }
        res.into_iter().map(|v|v as i32).collect()
    }
}
题解 2 - python
- 编辑时间:2023-04-16
- 执行用时:88ms
- 内存消耗:15.7MB
- 编程语言:python
- 解法介绍:同上。
class Solution:
    def rowAndMaximumOnes(self, mat: List[List[int]]) -> List[int]:
        res = [0, 0]
        for i in range(len(mat)):
            cnt = 0
            for v in mat[i]:
                if v == 1:
                    cnt += 1
            if res[1] < cnt:
                res[0] = i
                res[1] = cnt
        return res
题解 3 - cpp
- 编辑时间:2023-04-16
- 执行用时:104ms
- 内存消耗:59.2MB
- 编程语言:cpp
- 解法介绍:遍历。
class Solution {
    public:
        vector<int> rowAndMaximumOnes(vector<vector<int>>& mat) {
            vector<int> res(2, 0);
            for (int i = 0; i < mat.size(); i++) {
                int cnt = 0;
                for (auto &v: mat[i]) {
                    if (v == 1) cnt++;
                }
                if (res[1] < cnt) {
                    res[0] = i;
                    res[1] = cnt;
                }
            }
            return res;
        }
    };