Re: [閒聊] 每日LeetCode已回收

看板Marginalman作者 (史萊哲林的優等生)時間1年前 (2024/01/15 17:18), 編輯推噓1(102)
留言3則, 3人參與, 1年前最新討論串605/719 (看更多)
※ 引述《Rushia (みけねこ的鼻屎)》之銘言: : https://leetcode.com/problems/find-players-with-zero-or-one-losses : 2225. Find Players With Zero or One Losses : 給你一個二維陣列matches[][],matches[i] = {wini, loseri} 表示第i場比賽 : wini打贏了loseri,返回一個二維列表,第一個列表為沒輸過的玩家,第二個列表 : 為只輸一場的玩家,列表中的id升序排列。 : : 思路: : 1.統計所有玩家的敗場數,把敗場為0和敗場為1的抓出來即可,可以用HashMap : 或是int[]計數並排除掉沒出現的id。 思路: 1. 先把題目給的陣列分成贏跟輸的HashMap 2. 尋找有在贏Map沒在輸Map的 = Never_loses 3. 尋找輸Map數字是1的 = 一敗仔 4. Sort 因為不是照順序 Code: use std::collections::HashMap; impl Solution { pub fn find_winners(matches: Vec<Vec<i32>>) -> Vec<Vec<i32>> { let mut wins = HashMap::new(); let mut losses = HashMap::new(); for cur_match in matches{ let (winner, loser) = (cur_match[0],cur_match[1]); *wins.entry(winner).or_insert(0) += 1; *losses.entry(loser).or_insert(0) += 1; } let mut no_losses: Vec<i32> = wins.keys() .filter(|&player| !losses.contains_key(player)) .cloned().collect(); let mut one_loss: Vec<i32> = losses.iter() .filter(|&(_, loss_times)| *loss_times == 1) .map(|(&player, _)| player).collect(); no_losses.sort_unstable(); one_loss.sort_unstable(); vec![no_losses, one_loss] } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.143.172 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1705310306.A.C3E.html

01/15 17:28, 1年前 , 1F
大師
01/15 17:28, 1F

01/15 17:28, 1年前 , 2F
我變數名跟你一樣 笑死
01/15 17:28, 2F

01/15 17:33, 1年前 , 3F
我本來想寫never_loses 但熊哥哥拼錯 應該是losses==
01/15 17:33, 3F
文章代碼(AID): #1bfFXYm- (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1bfFXYm- (Marginalman)