Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::cmp;
- fn max_sliding_window(nums: Vec<i32>, k: i32) -> Vec<i32> {
- let mut start = 0;
- let mut result = Vec::new();
- let k = k as usize;
- if k <= 1 {
- return nums;
- }
- for _ in 0..=nums.len() - k {
- let s = &nums[start..start + k];
- let mut m = 0;
- for v in s.iter() {
- m = cmp::max(m, *v);
- }
- result.push(m);
- start += 1;
- }
- result
- }
- fn main() {
- assert_eq!(
- max_sliding_window(vec![1, 3, -1, -3, 5, 3, 6, 7], 3),
- vec![3, 3, 5, 5, 6, 7]
- );
- assert_eq!(max_sliding_window(vec![], 0), vec![]);
- assert_eq!(max_sliding_window(vec![1, -1], 1), vec![1, -1]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement