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

Pythonで多数決した候補者のIDを見つけるプログラム


n個の値を含むnumsと呼ばれる数値のリストがあるとします。ここで、各数値は候補者への投票を表します。投票数がfloor(n / 2)を超える候補者のIDを見つける必要があり、多数決がない場合は-1を返します。

したがって、入力がnums =[6、6、2、2、3、3、3、3、3]の場合、出力は3になります。

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

  • l:=numsのサイズ
  • count:=個々の番号とその出現を含むマップ
  • カウントの各数iと出現jについて、実行します
    • j>(l / 2)の場合、
      • 私を返す
  • 戻り値-1

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

class Solution:
   def solve(self, nums):
      l = len(nums)
      from collections import Counter
      count = Counter(nums)
      for i, j in count.items():
         if j > (l // 2):
            return i
      return -1
ob = Solution()
nums = [6, 6, 2, 2, 3, 3, 3, 3, 3]
print(ob.solve(nums))

入力

[6, 6, 2, 2, 3, 3, 3, 3, 3]

出力

3

  1. Pythonで最長の連続シーケンスの長さを見つけるプログラム

    並べ替えられていない数値の配列があるとすると、連続する要素の最長シーケンスの長さを見つける必要があります。 したがって、入力がnums =[70、7、50、4、6、5]の場合、連続する要素の最長シーケンスは[4、5、6、7]であるため、出力は4になります。したがって、その長さを返します:4。 これを解決するには、次の手順に従います- nums:=numsのすべての一意の要素 max_cnt:=0 numsのnumごとに、実行します num-1がnumsにない場合、 cnt:=0 numがnumsに存在する間、実行します num:=num + 1

  2. Pythonで1からNまでのすべての欠落している数字を見つけるプログラム

    サイズnのnumsと呼ばれる数値のリストがあり、リスト内のすべての数値が区間[1、n]に存在するとします。一部の要素は、2回表示され、他の要素は1回だけ表示される場合があります。リストにないように、[1、n]からすべての番号を見つける必要があります。昇順でソートされた番号を返す必要があります。線形の時間と一定のスペースを必要とする解決策を見つけようとする必要があります。 したがって、入力が[4、4、2、2、6、6]の場合、出力は[1、3、5]になります。 これを解決するには、次の手順に従います- arr:=サイズnums + 1の配列で、0で埋めます numsの各iについて、 ar