Re: [閒聊] 每日leetcode

作者: yam276 ('_')   2024-10-02 13:29:04
※ 引述《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()
}
}

Links booklink

Contact Us: admin [ a t ] ucptt.com