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

Pythonでk個の要素が少なくともk個の値を持つkを見つけるプログラム


numsと呼ばれる、負でない数のみを含む数のリストがあるとします。 numsにk以上の要素が正確にk個ある場合は、値kを見つけます。そのようなものが見つからない場合は、-1を返します。

したがって、入力がnums =[6、4、0、8、2、9]のような場合、4以上の要素が正確に4つあるため、出力は4になります。[6、4、 8、9]。

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

  • リスト番号を逆の順序で並べ替えます

  • 範囲1からnums-1のサイズのiの場合、実行します

    • i> nums [i-1]の場合、

      • ループから出てきます

    • それ以外の場合、i> nums [i]の場合、

      • iを返す

  • -1を返す

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

def solve(nums):
   nums.sort(reverse=True)
   for i in range(1, len(nums)):
      if i >nums[i - 1]:
         break
      elif i > nums[i]:
         return i
   return -1

nums = [6, 4, 0, 8, 2, 9]
print(solve(nums))

を返します

入力

[6, 4, 0, 8, 2, 9]

出力

4

  1. Pythonでリストの隣接していない要素の最大の合計を見つけるプログラム

    numsと呼ばれる数値のリストがあるとすると、隣接していない数値の最大の合計を返す関数を定義します。ここでは、数値は0または負の数にすることができます。 したがって、入力が[3、5、7、3、6]の場合、出力は16になります。これは、get16に3、7、および6を取ることができるためです。 これを解決するために、次の手順に従います- numsのサイズが<=2の場合、 最大数を返す noTake:=0 取る:=nums [0] 1からnumsのサイズの範囲のiの場合、実行します take:=noTake + nums [i] noTake:=

  2. 各KサイズのウィンドウがPythonで一意の要素を持つ数値のリストを見つけるためのプログラム

    numsと呼ばれる数のリストと別の数kがあるとすると、サイズkの各ウィンドウで個別の数の数のリストを見つける必要があります。 したがって、入力がnums =[2、2、3、3、4]、k =2の場合、ウィンドウは[2、2]であるため、出力は[1、2、1、2]になります。 [2、3]、[3、3]、および[3、4]。 これを解決するには、次の手順に従います- c:=numsの要素とその頻度の辞書を作成する ans:=新しいリスト kからnumsのサイズの範囲のiの場合、実行します ansの最後にcのサイズを挿入します c [nums [i]]:=c [nums [i]