Struct librualg::segment_tree::RmqMax [−][src]
Range Maximum Query
Implementations
impl<T> RmqMax<T> where
T: Default + Clone + Copy + SegmentTreeMin + SegmentTreeMax + Ord,
[src]
T: Default + Clone + Copy + SegmentTreeMin + SegmentTreeMax + Ord,
pub fn new(src: &[T]) -> Self
[src]
Build Segment Tree (RMQMax) from slice.
use librualg::segment_tree::{RmqMin, SegmentTreeMin, SegmentTreeMax, RmqMax}; use std::prelude::v1::*; let arr = [1, 2, 3, 4, 5]; let tree = RmqMax::new(&arr);
pub fn query(&self, l: usize, r: usize) -> Option<T>
[src]
Returns the maximum on the interval l to r
use librualg::segment_tree::{Rsq, RmqMax}; let arr = [1, 2, 3, 4, 5]; let tree = RmqMax::new(&arr); assert_eq!(tree.query(0, 4).unwrap(), 5); assert_eq!(tree.query(1, 4).unwrap(), 5); assert_eq!(tree.query(4, 1).unwrap(), 5); assert_eq!(tree.query(3, 1).unwrap(), 4); assert_eq!(tree.query(3, 11), None);
pub fn update(&mut self, idx: usize, value: T)
[src]
Update value by index
use librualg::segment_tree::{RmqMax}; let arr = [1, 2, 3, 4, 5]; let mut tree = RmqMax::new(&arr); assert_eq!(tree.query(0, 4).unwrap(), 5); tree.update(0, 7); assert_eq!(tree.query(0, 4).unwrap(), 7);
Auto Trait Implementations
impl<T> RefUnwindSafe for RmqMax<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for RmqMax<T> where
T: Send,
T: Send,
impl<T> Sync for RmqMax<T> where
T: Sync,
T: Sync,
impl<T> Unpin for RmqMax<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for RmqMax<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,