Pythonで重複番号を見つける
n+1個の整数を含む配列numがあるとします。メンバーは1からnの範囲です。少なくとも1つの重複番号が存在する必要があることを証明します。重複する番号が1つしかない場合、その重複する要素を見つける必要があります。したがって、配列が[1,3,4,2,2]のような場合、重複する要素は2になります。
これを解決するには、次の手順に従います-
- a:=nums [0]およびb:=nums [0]
- True
- a:=nums [nums [a]]
- b:=nums [b]
- a =bの場合、中断します
- ptr:=nums [0]
- ptrはb
- ではありません
- ptr:=nums [ptr]
- b:=nums [b]
- return ptr
理解を深めるために、次の実装を見てみましょう-
例
class Solution(object): def findDuplicate(self, nums): hare = nums[0] tortoise = nums[0] while True: hare = nums[nums[hare]] tortoise = nums[tortoise] if hare == tortoise: break ptr = nums[0] while ptr!=tortoise: ptr = nums[ptr] tortoise = nums[tortoise] return ptr ob1 = Solution() print(ob1.findDuplicate([3,1,3,4,2]))
入力
[3,1,3,4,2]
出力
3
-
リスト内の最小数を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal
-
Python関数の引数の数を見つけるにはどうすればよいですか?
次のようなスクリプトqux.pyがあるとします #qux.py def aMethod1(arg1, arg2): pass def aMethod2(arg1,arg2, arg3, arg4, arg5): pass このスクリプトの内容にアクセスできないと仮定すると、次のように、指定された関数の引数の数を見つけることができます Python関数内のパラメーター名のリストを見つけるには、inspectモジュールをインポートし、指定されたスクリプトqux.pyもインポートします。 inspect.getargspec(