diff options
Diffstat (limited to 'online_stock_span.rs')
-rw-r--r-- | online_stock_span.rs | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/online_stock_span.rs b/online_stock_span.rs index a1818ff..a967028 100644 --- a/online_stock_span.rs +++ b/online_stock_span.rs @@ -1,17 +1,28 @@ +// 901. Online Stock Span + +/* + * design an algorithm that collects daily price quotes for some stock and + * returns the span of that stock's price for the current day. the span of the + * stock's price in one day is the maximum number of consecutive days (starting + * from that day and going backward) for which the stock price was less than or + * equal to the price of that day. if the prices of the stock in the last four + * days is '[7,34,1,2]' and the price of the stock today is 8, then the span of + * today is 3 because starting from today, the price of the stock was less than + * or equal 8 for 3 consecutive days. + */ + struct Span { price: i32, - days: i32 + days: i32, } struct StockSpanner { - spans: Vec<Span> + spans: Vec<Span>, } impl StockSpanner { fn new() -> Self { - StockSpanner { - spans: Vec::new() - } + StockSpanner { spans: Vec::new() } } fn next(&mut self, price: i32) -> i32 { let mut days = 1; @@ -23,12 +34,18 @@ impl StockSpanner { break; } } - self.spans.push(Span{price, days}); + self.spans.push(Span { price, days }); days } } fn main() { - let obj = StockSpanner::new(); - let ret_1: i32 = obj.next(price); + let mut obj = StockSpanner::new(); + println!("{}", obj.next(100)); + println!("{}", obj.next(80)); + println!("{}", obj.next(60)); + println!("{}", obj.next(70)); + println!("{}", obj.next(60)); + println!("{}", obj.next(75)); + println!("{}", obj.next(85)); } |