精華區beta Marginalman 關於我們 聯絡資訊
※ 引述《dont (dont)》之銘言: : 1331. Rank Transform of an Array : ## 思路 : 先用sort過的arr建 num -> rank 的HashTable : 再把arr轉成rank : ## Code 差不多的想法 Code: use std::collections::HashMap; impl Solution { pub fn array_rank_transform(arr: Vec<i32>)-> Vec<i32> { let mut new_arr = arr.clone(); new_arr.sort_unstable(); let mut rank_map = HashMap::new(); let mut rank = 1; for &n in &new_arr { if !rank_map.contains_key(&n) { rank_map.insert(n, rank); rank += 1; } } arr.iter().map(|&n| rank_map[&n]).collect() } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.249.242 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1727846946.A.532.html