rustgym/leetcode/
_1380_lucky_numbers_in_a_matrix.rs1struct Solution;
2
3impl Solution {
4 fn lucky_numbers(matrix: Vec<Vec<i32>>) -> Vec<i32> {
5 let n = matrix.len();
6 let m = matrix[0].len();
7 let mut mins: Vec<i32> = vec![std::i32::MAX; n];
8 let mut maxs: Vec<i32> = vec![std::i32::MIN; m];
9 let mut res = vec![];
10 for i in 0..n {
11 for j in 0..m {
12 mins[i] = mins[i].min(matrix[i][j]);
13 maxs[j] = maxs[j].max(matrix[i][j]);
14 }
15 }
16 for i in 0..n {
17 for j in 0..m {
18 if mins[i] == matrix[i][j] && maxs[j] == matrix[i][j] {
19 res.push(matrix[i][j]);
20 }
21 }
22 }
23 res
24 }
25}
26
27#[test]
28fn test() {
29 let matrix = vec_vec_i32![[3, 7, 8], [9, 11, 13], [15, 16, 17]];
30 let res = vec![15];
31 assert_eq!(Solution::lucky_numbers(matrix), res);
32 let matrix = vec_vec_i32![[1, 10, 4, 2], [9, 3, 8, 7], [15, 16, 17, 12]];
33 let res = vec![12];
34 assert_eq!(Solution::lucky_numbers(matrix), res);
35 let matrix = vec_vec_i32![[7, 8], [1, 2]];
36 let res = vec![7];
37 assert_eq!(Solution::lucky_numbers(matrix), res);
38}