impl Solution { pub fn find_judge(n: i32, trust: Vec>) -> i32 { let mut trusts: Vec = vec![0; n as usize]; let mut trusted_by: Vec = vec![0; n as usize]; // set the counters for vertices in &trust { let u = vertices[0] as usize; let v = vertices[1] as usize; trusts[u - 1] += 1; trusted_by[v - 1] += 1; } // find the judge let mut judge = -1; for i in 0..n as usize { if trusts[i] != 0 || trusted_by[i] != n - 1 { continue; } if judge != -1 { return -1; } judge = i as i32 + 1; } judge } }