ランプスイッチ5353 III

行の左から右へ、1からnまでの番号ランプ室のN個があります。最初は、すべてのライトがシャットダウンされています。

時刻k(kはnに0の範囲内である - 1)では、我々はライト[K]ランプを開きます。

ランプの青色を有効にするには、同時に次の2つの条件を満たしている必要があります。

ランプがオンになっています。
すべてのライトのその前の行(左側)が開いた状態になっています。
すべてのライトは、何回オープン青い数になっている作ることができるように戻ってください。

入力:ライト= [2,1,3,5,4]
 出力: 3
 説明:すべてのオープンタイミング青色光がそれぞれ1,2および4

1.法見て、2時に、ライン1に、最大値は2ではない場合、カウントは2であり、3×3の最大値に、3カウント、5の最大値にライン5、カウントありません4

2.ゲームのアイデアは、最初にすべての光の状況のアップハッシュときに私が前に私に行ったとき、エントリと等しいハッシュ[i]をすることができます

class Solution(object):
    def numTimesAllBlue(self, light):
        """
        :type light: List[int]
        :rtype: int
        """
        cur = 0
        res = 0
        for i in range(len(light)):
            cur=max(cur,light[i])
            if cur ==i+1:
                res+=1
        return res

class Solution(object):
    def numTimesAllBlue(self, light):
        """
        :type light: List[int]
        :rtype: int
        """
        hash_ = [0 for _ in range(len(light)+1)]
        res = []
        sum_=0
        for i in range(1,len(light)+1):
            sum_+=i
            hash_[i] = sum_
        
        sum2 = 0
        for i in range(1,len(light)+1):
            sum2+=light[i-1]
            if sum2==hash_[i]:
                res.append(i-1)
        return len(res)

 

公開された200元の記事 ウォン称賛17 ビュー30000 +

おすすめ

転載: blog.csdn.net/qq_36328915/article/details/104748653