leetcode面の質問57 - IIとスライディングウィンドウの連続した正シーケンスs。

leetcode面の質問57 - IIとスライディングウィンドウの連続した正シーケンスs。

leetcode 2020 3月1日、質問、毎日パンチ
安全プランを証明します

問題:正の整数ターゲット、すべての連続する正の整数の出力、および(少なくとも2つの数値を含む)標的配列を入力します。昇順で番号が最初の数字に応じて異なる配列の昇順に配列されています。

実施例1:
入力:目標= 9
出力:[[2,3,4]、[4,5]
実施例2:
入力:目標= 15
出力:[1,2,3,4,5]、[4 、5,6]、[7,8]
限界:1 <=目標<= 10 ^ 5

オリジナルタイトルリンクします。https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/

アイデア:パイソンスライディングウィンドウ:Lはウィンドウの左端であり、Rは右ウィンドウの境界線です。デジタルウィンドウ未満目標より、R右場合、目標よりも大きい、L右;標的溶液を得ることに等しいです。

詳細:暴力によって解決最初の2サイクルは、確かに時間制限を超えています。

コード:

class Solution(object):
    def findContinuousSequence(self, target):
        """
        :type target: int
        :rtype: List[List[int]]
        """
        # 滑动窗口
        # sum = (start+end)*(end-start+1)/2
        ans=[]

        l=1
        r=2

        while l <= target/2:
            sum = (l+r)*(r-l+1)/2
            if sum == target:
                tem = []
                for i in range(l,r+1):
                    tem.append(i)
                ans.append(tem)
                l+=1
                r=l+1
            elif sum > target:
                l+=1
                r=l+1
            elif sum < target:
                r+=1
            
        return ans

再現したように、ソースを明記してください!すべての権利予約

公開された20元の記事 ウォンの賞賛1 ビュー207

おすすめ

転載: blog.csdn.net/weixin_43973433/article/details/104849069