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

Pythonを使用してK個の削除後に一意の整数の最小数を見つけるプログラム


整数のみが格納されているnumsという配列があるとします。数kがある場合。正確にk個の要素を削除した後、一意の要素の数を最小限に抑える必要があります。

したがって、入力がnums =[5,4,2,2,4,4,3]、k =3のような場合、出力は2になります。これは、5と3、および2のいずれかを削除すると2になるためです。または4のいずれかである場合、残りは2と4のみになります。

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

  • 辞書:=新しい地図

  • numsのnumごとに、実行します

    • numが辞書にない場合は、

      • 辞書[num]:=1

    • それ以外の場合

      • 辞書[num]:=辞書[num] + 1

  • count:=辞書のサイズ

  • 辞書のすべての値のソートされた順序で頻度ごとに、実行します

    • k:=k-頻度

    • k <0の場合、

      • 返品数

    • それ以外の場合

      • count:=count-1

  • 返品数

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

def solve(nums, k):
   dictionary={}
   for num in nums:
      if num not in dictionary:
         dictionary[num]=1
      else:
         dictionary[num]+=1
   count=len(dictionary)
   for frequency in sorted(dictionary.values()):
      k-=frequency
      if(k<0):
         return count
      else:
         count-=1
   return count
nums = [5,4,2,2,4,4,3]
k = 3
print(solve(nums, k))

入力

[5,4,2,2,4,4,3], 3

出力

2

  1. Pythonでマージした後も、最小数の色を見つけるプログラムが残っています

    色のリスト(R、G、B)があるとします。これで、2つの異なる色が隣り合っている場合、それらは3番目の色の単一の色のアイテムに変換できます。そのような変換の可能なシーケンスの後に残っているそれらの最小数を見つける必要があります。 したがって、入力がcolors =[G、 R、 G、 B、 R]の場合、以下のように変換できるため、出力は1になります- これを解決するには、次の手順に従います- n:=色のサイズ 色に異なる色が1つしかない場合は、 return n n <=1の場合、 return n x:=0 d:=キーと値のペアを持つマップ{( R、1)、(

  2. Pythonでソートされたリスト内の一意の整数の数を見つけるプログラム

    numsと呼ばれるソートされた数値のリストがあり、リスト内の一意の要素の数を見つける必要があるとします。 したがって、入力がnums =[3、3、3、4、5、7、7]の場合、一意の番号は[3、4、5、7] であるため、出力は4になります。 これを解決するには、次の手順に従います- s:=新しいセット cnt:=0 numsの各iについて、 iがsにない場合は、 iをsに挿入 cnt:=cnt + 1 return cnt 理解を深めるために、次の実装を見てみましょう- 例 class Solution:    def solve(self