作者yam276 (虛構史學家)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Tue Jun 11 15:29:57 2024
※ 引述《sustainer123 (caster )》之銘言:
: https://leetcode.com/problems/relative-sort-array
: 1122. Relative Sort Array
: 給定兩數列arr1與arr2 arr2的元素不重復且皆存在於arr1
: 請依照arr2的順序排列arr1的元素
: 假設有元素不在arr2 請遞增排序
思路:
先用HashMap整理次數
照arr2出現順序放進result vec
然後選剩的孩子們sort後放後面
太苦了 不被需要的粉絲
Code:
use std::collections::HashMap;
impl Solution {
pub fn relative_sort_array(arr1: Vec<i32>, mut arr2: Vec<i32>) -> Vec<i32>
{
let mut arr1_hash = HashMap::new();
for &num in &arr1 {
*arr1_hash.entry(num).or_insert(0)+=1;
}
let mut result = Vec::new();
for &num in &arr2 {
if let Some(&count) = arr1_hash.get(&num){
for _ in 0..count {
result.push(num);
}
arr1_hash.remove(&num);
}
}
let mut rest_arr1 = Vec::new();
for (&num, &count) in &arr1_hash {
for _ in 0..count {
rest_arr1.push(num);
}
}
rest_arr1.sort();
result.extend(rest_arr1);
result
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.123.162 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1718090999.A.54E.html
推 SecondRun: 大師 06/11 15:33
→ yam276: 感覺我脫褲子放屁 我哭了 06/11 15:35