pub fn sliding_window_minimum<T>(a: &[T], window_width: usize) -> Vec<&T>where
T: Ord,Expand description
幅 window_width の区間すべてに対し最小値を求めます。
配列 a に対し次で定める配列 b を求めます。
aの長さa.len()をnとするb[0]:min(a[0], a[1], ..., a[window_width - 1])b[1]:min(a[1], a[2], ..., a[window_width])- …
b[n - window_width]:min(a[n - window_width], ..., a[n - 2], a[n - 1])
§Panics
if window_width is zero or is greater than a.len().
§Examples
use sliding_window::sliding_window_minimum;
let a = vec![4, 7, 7, 8, 5, 7, 6, 9, 9, 2, 8, 3];
let minimums = sliding_window_minimum(&a, 6);
assert_eq!(
minimums,
vec![
&4, // 4 7 7 8 5 7
&5, // 7 7 8 5 7 6
&5, // 7 8 5 7 6 9
&5, // 8 5 7 6 9 9
&2, // 5 7 6 9 9 2
&2, // 7 6 9 9 2 8
&2, // 6 9 9 2 8 3
]
);