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
-
Pythonでターゲットを保持している最短のサイクル長を見つけるプログラム
有向グラフの隣接リストがあるとします。ここで、インデックスiの各リストは、ノードiからの接続されたノードで表されます。目標値もあります。ターゲットを含む最短サイクルの長さを見つける必要があります。解決策がない場合は-1を返します。 したがって、入力が次のような場合 0があることに注意してください。ただし、これは最短ではありません。 これを解決するには、次の手順に従います- 訪問:=新しいセット l:=要素ターゲットのリスト。 長さ:=0 lが空ではない場合は、 長さ:=長さ+ 1 nl:=新しいリスト lの各uについて、 グラフ[u]の各vについて、 vがターゲット
-
Pythonで範囲内のノード数を見つけるプログラム
BSTがあり、左と右の境界lとrもあるとすると、lとrの間に値が存在するルート内のすべてのノードの数を見つける必要があります。 したがって、入力が次のような場合 l =7、r =13の場合、8、10、12の3つのノードがあるため、出力は3になります。 これを解決するために、次の手順に従います- スタック:=スタックと最初にルートを挿入し、カウント:=0 スタックが空でないときに、実行します node:=スタックの最上位要素、およびポップ要素 ノードがnullでない場合、 l<=ノードのデータ<=rの場合、 count:=count + 1