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

各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]] + 1

    • c [nums [i --k]]:=c [nums [i --k]]-1

    • c [nums [i --k]]が0と同じ場合、

      • c [nums [i --k]]

        を削除します
  • ansの最後にcのサイズを挿入します

  • ansを返す

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

from collections import Counter

class Solution:
   def solve(self, nums, k):
      c = Counter()
      for i in range(k):
         c[nums[i]] += 1
      ans = []
      for i in range(k, len(nums)):
         ans.append(len(c))
         c[nums[i]] += 1
         c[nums[i - k]] -= 1
         if c[nums[i - k]] == 0:
            del c[nums[i - k]]
      ans.append(len(c))
      return ans

ob = Solution()
nums = [2, 2, 3, 3, 4]
print(ob.solve(nums, 2))

入力

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

出力

[1, 2, 1, 2]

  1. リスト内の要素の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力としてリストが与えられた場合、与えられたリストの合計を計算する必要があります。 ここでは、考慮すべき2つのアプローチがあります。つまり、組み込み関数を使用する方法と、ブルートフォースアプローチを使用する方法です。 アプローチ1-組み込み関数の使用 例 # main arr = [1,2,3,4,5] ans = sum(arr) print ('Sum of the array is ',ans) 出力 15 すべての変数と関数はグローバルスコープで宣言されて

  2. リストからN個の最大の要素を見つけるPythonプログラム

    整数リストが与えられた場合、私たちのタスクはリスト内で最大のN個の要素を見つけることです。 例 Input : [40, 5, 10, 20, 9] N = 2 Output: [40, 20] アルゴリズム Step1: Input an integer list and the number of largest number. Step2: First traverse the list up to N times. Step3: Each traverse find the largest value and store it in a new list. 例 def Nnumbere