[プログラマー]第2級株価


株価


問題の説明


秒単位で記録された株価の配列価格をパラメータとして指定すると、価格が下がらない時間帯に数秒戻るように解く関数が完了する.

せいげんじょうけん

  • の価格は、それぞれ1以上10000以下の自然数です.
  • 価格の長さは2以上100000以下です.
  • 問題分類はスタック/キューですが...わけもわからずスタック/キューを書きましたが、正解は正解で、効率テストは0点でした.
    時間の複雑さはO(n^2)に違いなく、価格の低いインデックスを見るたびに
    一番前のポップだとリストの長さも小さくなるので大丈夫かな…そう思います.
    30分くらい悩んだ.
    2階建てのドアを使っただけで、解けました.
    最初のfor文では、pricesの長さで回転します.
    2番目のfor文では、1番目のfor文のインデックスが後で比較されるコードです.
    テストケースの実行速度には違いがないようです...
    なぜ最初のコードが間違っているのか分かりません.

    コード#コード#

    def solution(prices):
        answer = []
        for i in range(0, len(prices)):
            for j in range(i, len(prices)):
                if prices[i] > prices[j] or j == len(prices) - 1:
                    answer.append(j - i)
                    break
        return answer