精華區beta Marginalman 關於我們 聯絡資訊
1679. Max Number of K-Sum Pairs 題目: 給你一堆牌抽鬼牌 抽到合計 k 的可以拔掉 看能湊幾對 思路: 用雙指標要先排序變成O(n log n) 很痛苦 所以用 HashMap 而且我本來 for 掃兩遍 但後來發現這一題可以邊做邊蒐集 不是需要先蒐集滿的題目 可以只用一個 for 解完 :O Code: use std::collections::{hash_map::Entry, HashMap}; impl Solution { pub fn max_operations(nums: Vec<i32>, k: i32) -> i32 { let mut counts = HashMap::new(); let mut count = 0; for num in nums { match counts.entry(k - num) { Entry::Occupied(mut e) => { *e.get_mut() -= 1; if *e.get_mut() == 0 { e.remove_entry(); } count += 1; } Entry::Vacant(_) => { *counts.entry(num).or_insert(0) += 1; } } } count } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.143.163 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1749457132.A.C11.html ※ 編輯: yam276 (60.248.143.163 臺灣), 06/09/2025 17:12:29