>Java >java지도 시간 >리트코드 . 온라인 주식 범위

리트코드 . 온라인 주식 범위

Barbara Streisand
Barbara Streisand원래의
2025-01-19 16:04:11534검색

Leetcode . Online Stock Span

문제 해결 아이디어

이전에 계산된 스팬 결과를 사용할 수 있나요?

방법

주가와 그 범위를 배열로 저장합니다.

마지막 날의 가격이 현재 가격보다 낮을 경우, 마지막 날의 날짜로 이동합니다.

복잡성

  • 시간 복잡도: O(n)
  • 공간 복잡도: O(n)

코드

<code class="language-java">import java.util.ArrayList;

class StockSpanner {
    ArrayList<Pair<Integer, Integer>> list;

    public StockSpanner() {
        list = new ArrayList<>();
    }

    public int next(int price) {
        int index = list.size() - 1;
        int ans = 1;
        while (index != -1) {
            if (list.get(index).getKey() > price) break;
            int span = list.get(index).getValue();
            ans += span;
            index -= span;
        }
        list.add(new Pair<>(price, ans));
        return ans;
    }
}

//假设Pair类已定义
class Pair<K, V> {
    private K key;
    private V value;

    public Pair(K key, V value) {
        this.key = key;
        this.value = value;
    }

    public K getKey() {
        return key;
    }

    public V getValue() {
        return value;
    }
}


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

더 많은 솔루션을 보려면 GitHub 저장소(Git)를 방문하세요. LeetCode 개인 홈페이지: LeetCode: devn007

위 내용은 리트코드 . 온라인 주식 범위의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.