901. Online Stock Span

일부 주식에 대한 일일 가격 시세를 수집하고 현재 날짜의 해당 주식 가격 범위를 반환하는 알고리즘을 설계합니다.

  • 하루 동안의 주가 범위는 주가가 그날의 가격보다 작거나 같은 최대 연속 일수(당일부터 시작하여 뒤로)입니다.
  • Example: [100,80,60,70,60,75,86] -> [1,1,1,2,1,4,6]
class StockSpanner {

    Stack<int[]> stack; 
    
    public StockSpanner() {
        this.stack = new Stack<>();
    }
    
    public int next(int price) {
        int ans = 1;
        
        while (!stack.isEmpty() && stack.peek()[0] <= price) {
            ans += stack.pop()[1];
        }
        
        stack.push(new int[] {price, ans});
        
        return ans;
    }
}

/**
 * Your StockSpanner object will be instantiated and called as such:
 * StockSpanner obj = new StockSpanner();
 * int param_1 = obj.next(price);
 */





© 2017. by yeopoong.github.io

Powered by yeopoong