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

Pythonで1からnの範囲のn+1個の数値から重複する要素を見つけるプログラム


長さn+1のnumsと呼ばれる数値のリストがあるとします。これらの数値は、範囲1、2、...、nから選択されます。ご存知のように、鳩の巣原理を使用すると、重複が存在する必要があります。それを見つけて返送する必要があります。

したがって、入力が[2、1、4、3、3]の場合、出力は3

になります。

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

  • l:=numsのサイズ
  • temp:=l *(l-1)/ 2
  • temp_sum:=numsのすべての要素の合計
  • return(temp_sum --temp)

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

class Solution:
   def solve(self, nums):
      l = len(nums)
      temp = l*(l-1)/2
      temp_sum = sum(nums)
      return temp_sum-temp
ob = Solution()
print(ob.solve([2, 1, 4, 3, 3]))

入力

[2, 1, 4, 3, 3]

出力

3

  1. Pythonで合計kになるリスト内の任意の2つの数値を検索するプログラム

    numsと呼ばれる数のリストがあり、別の数kがあるとすると、リストに存在する2つの数の合計がkになるかどうかを確認する必要があります。同じ要素を2回使用しないでください。また、数値は負または0にすることができます。 したがって、入力がnums =[45、18、9、13、12]、k =31のような場合、出力はTrueになります(18 + 13 =31 )。 これを解決するには、次の手順に従います- temp_set:=新しいセット numsの各numに対して、実行します numがtemp_setにある場合、 Trueを返す temp_setに(k-num)を追加します Fa

  2. 2D配列でk番目に小さい要素を見つけるPythonプログラム

    1つのn×nユーザー入力整数行列が与えられ、kの値。私たちのタスクは、2D配列でk番目に小さい要素を見つけることです。ここでは、Pythonでheapq mudule.Heapキュー(またはheapq)を使用します。 Pythonでは、「heapq」モジュールを使用して利用できます。 Pythonでのこのモジュールの手法は、最小のヒープ要素がポップされるたびに(min heap).nsmallest()メソッドを使用して、データフレームまたはシリーズからn個の最小値を取得します。 例 Input Array is:: 10 20 20 40 15 45 40 30 32 33 30 50