精華區beta Marginalman 關於我們 聯絡資訊
1732. Find the Highest Altitude 題目: 騎車大師騎車跑山 每次經過的點是相對高度 計算騎車大師經過的最高點多高 思路: 直接累加 定期更新最高點 這一題有點太簡單了 Code: impl Solution { pub fn largest_altitude(gain: Vec<i32>) -> i32 { let mut highest = 0; let mut height = 0; for h in gain { height += h; highest = highest.max(height); } highest } } 也可以用 scan 來鏈式解: gain.iter() .scan(0, |acc, &x| { *acc += x; Some(*acc) }) .chain(std::iter::once(0)) .max() .unwrap() .chain() 這行只是設定起始值是高度 0 的 iterator 因為 .scan() 沒有考慮到起始點 acc 是每次回傳的狀態 &x 則是每次取出的 iterator -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.48.170 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1749537964.A.055.html
oin1104: 大師 06/10 15:05