Re: [閒聊] 每日leetcode

看板Marginalman作者 (史萊哲林的優等生)時間6月前 (2025/05/11 15:53), 編輯推噓1(100)
留言1則, 1人參與, 6月前最新討論串1425/1548 (看更多)
1550. Three Consecutive Odds https://leetcode.com/problems/three-consecutive-odds/ 題意:陣列遇到連續三個奇數就回傳true 思路:簡單題目 如果只是要簡單解的話就 impl Solution { pub fn three_consecutive_odds(arr: Vec<i32>) -> bool { if arr.len() < 3 { return false; } for i in 0..arr.len() - 2 { if (arr[i] % 2 == 1 && arr[i + 1] % 2 == 1 && arr[i + 2] % 2 == 1) { return true; } } false } } 但只是這樣太無聊了 我看到一種方法 impl Solution { pub fn three_consecutive_odds(arr: Vec<i32>) -> bool { let mut count = 0; for val in arr.iter() { count = (count + val % 2) * (val % 2); if count >= 3 { return true; } } false } } 他利用(count + (val % 2)) * (val % 2)) count 加的那個 val % 2 代表奇數 因為 %2 不是 0 就是 1 後面乘的那個 val % 2 代表偶數 因為遇到就直接歸零重算 這解法有點像是賭徒/種族繁衍曲線 遇到少數黑天鵝事件就是財產歸零/種族滅絕 蠻有趣的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.249.242 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1746950013.A.06C.html

05/11 15:58, 6月前 , 1F
大師
05/11 15:58, 1F
文章代碼(AID): #1e85Tz1i (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1e85Tz1i (Marginalman)