Skip to content
Go back

1615-maximal-network-rank

1615 https://leetcode.cn/problems/maximal-network-rank/

struct Solution {}

impl Solution {
  pub fn maximal_network_rank(n: i32, roads: Vec<Vec<i32>>) -> i32 {
    let mut gress: [[i32; 101]; 101] = [[0; 101]; 101];
    roads.iter().for_each(|edge| {
      let (e1, e2) = (edge[0], edge[1]);
      gress[e1 as usize][e2 as usize] = 1;
      gress[e2 as usize][e1 as usize] = 1;
    });

    let mut sum_gress: [i32; 101] = [0; 101];
    (0..n).for_each(|row| {
      let mut sum: i32 = 0;
      (0..n).for_each(|col| {
        sum += gress[row as usize][col as usize];
      });
      sum_gress[row as usize] = sum;
    });

    let mut ret: i32 = 0;
    (0..n).for_each(|row| {
      (0..n).for_each(|col| {
        if row != col
          && ret
            < sum_gress[row as usize] + sum_gress[col as usize] - gress[row as usize][col as usize]
        {
          ret =
            sum_gress[row as usize] + sum_gress[col as usize] - gress[row as usize][col as usize];
        }
      });
    });

    ret
  }
}

Share this post on:

Previous Post
1626-best-team-with-no-conflicts
Next Post
2383-minimum-hours-of-training-to-win-a-competition