【发布时间】:2021-06-20 18:26:37
【问题描述】:
我有以下代码:
impl Solution {
pub fn max_sliding_window(nums: Vec<i32>, k: i32) -> Vec<i32> {
let mut result = vec![];
for i in 0..nums.len() as i32 - (k - 1) {
//println!("{}", nums[i as usize..(i + k) as usize].iter().max());
result.push(nums[i as usize..(i + k) as usize].iter().max());
}
return result;
}
}
我想从 nums 向量的开头到结尾返回每个 k 大小的窗口的最大值。但是,.iter().max() 表单返回的是 std::option::Option 类型,而不是 i32 类型。我也试过as i32,但这是不允许的。如何解决这个问题?
【问题讨论】:
-
首先你应该决定当 vec 为空或 k 为负时你想要发生什么。那你应该看看Option的方法。