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

Pythonでサイズkの辞書式に最小のサブシーケンスを見つけるプログラム


numsと呼ばれる数値のリストと別の値kがあるとすると、サイズkの辞書式順序で最小のサブシーケンスを見つける必要があります。

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

になります。

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

  • l:=numsのサイズ、r:=k-1
  • out:=新しいリスト
  • 0からkの範囲のjについては、
    • mn:=nums[rの補集合]
    • rからlの範囲のiについては、
      • mn> =nums [complement of i]の場合、
        • mn:=nums [complement of i]
        • l:=i
    • r:=r-1
  • outの最後にmnを挿入
  • 戻る

例(Python)

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

class Solution:
   def solve(self, nums, k):
      l, r = len(nums), k - 1
      out = []
      for j in range(k):
         mn = nums[~r]
         for i in range(r, l):
            if mn >= nums[~i]:
               mn = nums[~i]
               l = i
         r -= 1
         out.append(mn)
   return out
ob = Solution()
nums = [2, 3, 1, 10, 3, 4]
k = 3
print(ob.solve(nums, k))

入力

[2, 3, 1, 10, 3, 4], 3

出力

[1, 3, 4]

  1. リスト内の最小数を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal

  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