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

Pythonの範囲で最初の正の欠落した整数を見つけるプログラム


サイズnの個別の整数のソートされたリストのリストがあるとすると、配列に存在しない範囲[1〜n+1]の最初の正の数を見つける必要があります。

したがって、入力がnums =[0,5,1]の場合、2は1から5の範囲で最初に欠落している数値であるため、出力は2になります。

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

  • ターゲット:=1

  • arrの各iについて、実行します

    • iがターゲットと同じ場合、

      • ターゲット:=ターゲット+ 1

  • ターゲットを返す

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

class Solution:
   def solve(self, arr):
      target = 1
      for i in arr:
         if i == target:
            target += 1
         return target
ob = Solution()
nums = [0,5,1]
print(ob.solve(nums))

入力

[0,5,1]

出力

2

  1. Pythonでターゲットを保持している最短のサイクル長を見つけるプログラム

    有向グラフの隣接リストがあるとします。ここで、インデックスiの各リストは、ノードiからの接続されたノードで表されます。目標値もあります。ターゲットを含む最短サイクルの長さを見つける必要があります。解決策がない場合は-1を返します。 したがって、入力が次のような場合 0があることに注意してください。ただし、これは最短ではありません。 これを解決するには、次の手順に従います- 訪問:=新しいセット l:=要素ターゲットのリスト。 長さ:=0 lが空ではない場合は、 長さ:=長さ+ 1 nl:=新しいリスト lの各uについて、 グラフ[u]の各vについて、 vがターゲット

  2. Pythonで範囲内のノード数を見つけるプログラム

    BSTがあり、左と右の境界lとrもあるとすると、lとrの間に値が存在するルート内のすべてのノードの数を見つける必要があります。 したがって、入力が次のような場合 l =7、r =13の場合、8、10、12の3つのノードがあるため、出力は3になります。 これを解決するために、次の手順に従います- スタック:=スタックと最初にルートを挿入し、カウント:=0 スタックが空でないときに、実行します node:=スタックの最上位要素、およびポップ要素 ノードがnullでない場合、 l<=ノードのデータ<=rの場合、 count:=count + 1