Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. use std::cmp;
  2.  
  3. fn max_sliding_window(nums: Vec<i32>, k: i32) -> Vec<i32> {
  4. let mut start = 0;
  5. let mut result = Vec::new();
  6. let k = k as usize;
  7.  
  8. if k <= 1 {
  9. return nums;
  10. }
  11.  
  12. for _ in 0..=nums.len() - k {
  13. let s = &nums[start..start + k];
  14. let mut m = 0;
  15.  
  16. for v in s.iter() {
  17. m = cmp::max(m, *v);
  18. }
  19.  
  20. result.push(m);
  21. start += 1;
  22. }
  23.  
  24. result
  25. }
  26.  
  27. fn main() {
  28. assert_eq!(
  29. max_sliding_window(vec![1, 3, -1, -3, 5, 3, 6, 7], 3),
  30. vec![3, 3, 5, 5, 6, 7]
  31. );
  32. assert_eq!(max_sliding_window(vec![], 0), vec![]);
  33. assert_eq!(max_sliding_window(vec![1, -1], 1), vec![1, -1]);
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement