Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでの最長の連続シーケンス


整数の配列があるとします。連続する最長の要素シーケンスの長さを見つける必要があります。したがって、入力が[100、4、250、1、3、2]の場合、最長の連続シーケンスは[1,2,3,4]であるため、回答は4になります。

これを解決するには、次の手順に従います-

  • 配列を最長:=0

    に設定します
  • 範囲配列内のiの場合-

    • i –1が-

      にない場合
      • 現在:=i、ストリーク:=0

      • 私が-

        にいる間
        • iを1増やし、ストリークを1増やします

        • 最長:=最長とストリークの最大値

  • 最長で戻る

理解を深めるために、次の実装を見てみましょう-

class Solution(object):
   def longestConsecutive(self, a):
      a = set(a)
      longest = 0
      for i in a:
         if i-1 not in a:
            current = i
            streak = 0
            while i in a:
               i+=1
               streak+=1
               longest = max(longest,streak)
      return longest

ob = Solution()
print(ob.longestConsecutive([100,4,250,1,3,2]))

入力

[100,4,250,1,3,2]

出力

4

  1. JavaScriptで可能な最長の連続した数列の長さ

    最初で唯一の引数として整数の配列を受け取るJavaScript関数を作成する必要があります。 関数は、配列に存在する最長の連続する増加シーケンスの長さを見つけて返す必要があります(連続または非連続)。 例- 入力配列が-の場合 const arr = [4, 6, 9, 1, 2, 8, 5, 3, -1]; 連続する最長の増加シーケンスは1、2、3、4、5、6であるため、出力は6になります。 例 以下はコードです- const arr = [4, 6, 9, 1, 2, 8, 5, 3, -1]; const consecutiveSequence = (arr = []) =&g

  2. C++での二分木最長連続シーケンス

    二分木があるとしましょう。連続する最長のシーケンスパスの長さを見つけることができるかどうかを確認する必要があります。パスが、親子接続に沿ったツリー内の開始ノードから任意のノードまでのノードのシーケンスを参照している場合。最長の連続パスは、親から子をたどる必要がありますが、逆にする必要はありません。 したがって、入力が次のような場合、 最長の連続シーケンスパスは3-4-5であるため、出力は3になります。したがって、3を返します。 これを解決するには、次の手順に従います- 関数solveUtil()を定義します。これにより、ノード、prev、lenが1で初期化されます。 ノ