[−][src]Struct leetcode_for_rust::cd0155_min_stack::MinStack
Solutions
Approach 1:
-
Time complexity: O(1)
-
Space complexity: O(n)
-
Runtime: 0 ms
-
Memory: 5.2 MB
struct MinStack { stack: Vec<i32>, min: i32, } /** * `&self` means the method takes an immutable reference. * If you need a mutable reference, change it to `&mut self` instead. */ impl MinStack { /** initialize your data structure here. */ fn new() -> Self { MinStack { stack: vec![], min: i32::max_value(), } } fn push(&mut self, x: i32) { if self.min >= x { self.stack.push(self.min); self.min = x; } self.stack.push(x); } fn pop(&mut self) { if let Some(i) = self.stack.pop() { if i == self.min { self.min = self.stack.pop().unwrap(); } } } fn top(&self) -> i32 { *self.stack.last().unwrap() } fn get_min(&self) -> i32 { self.min } } /** * Your MinStack object will be instantiated and called as such: * let obj = MinStack::new(); * obj.push(x); * obj.pop(); * let ret_3: i32 = obj.top(); * let ret_4: i32 = obj.get_min(); */
Auto Trait Implementations
impl Sync for MinStack
impl Send for MinStack
impl Unpin for MinStack
impl RefUnwindSafe for MinStack
impl UnwindSafe for MinStack
Blanket Implementations
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.
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,