[闲聊] 每日leetcode 75 - Day8 - 2

楼主: yam276 ('_')   2025-06-10 14:46:02
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
作者: oin1104 (是oin的说)   2025-06-10 15:05:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com