ホームページ > Java > &#&チュートリアル > リートコード 。オンライン在庫スパン

リートコード 。オンライン在庫スパン

Barbara Streisand
リリース: 2025-01-19 16:04:11
オリジナル
534 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート