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

Pythonで指定されたリストの右側にある小さい要素の数を返すプログラム


numsという番号のリストがあるとすると、新しいリストを作成します。新しいリストの各要素は、元の入力リストのその要素の右側にある小さい要素の数です。

したがって、入力がnums =[4、5、9、7、2]のようである場合、4の右側に1つの小さい要素があるため、出力は[1、1、2、1、0]になります。は5の右側に1つの小さい要素があり、9の右側に2つの小さい要素があり、7の右側に1つの小さい要素があり、2の右側に小さい要素はありません。

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

  • res:=新しいリスト、inc:=新しいリスト

  • numsが空ではない場合は、実行してください

    • num:=numsから最後の要素を削除する

    • 左端のインデックスを挿入して、resの最後にあるincにnumを挿入します

    • incにnumを挿入した後のソート済みリスト

  • リストを返すres[インデックス0から終了まで]

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

import bisect
class Solution:
   def solve(self, nums):
      res, inc = [], []
      while nums:
         num = nums.pop()
         res.append(bisect.bisect_left(inc, num))
         bisect.insort(inc, num)
      return res[::-1]
ob = Solution()
nums = [4, 5, 9, 7, 2]
print(ob.solve(nums))

入力

[4, 5, 9, 7, 2]

出力

[1, 1, 2, 1, 0]

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

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

  2. 与えられた範囲内の奇数因子を持つ要素の数のためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −範囲が与えられているので、範囲内の奇数因子の数を見つける必要があります。 アプローチ 私たち全員が知っているように、すべての完全な正方形には、範囲内に奇数の因子があります。そこで、ここでは完全な平方の数を計算します。 mとnは両方とも包括的であるため、nが完全な正方形である場合のエラーを回避するために、式でn-1を使用します。 次に、以下の実装を見てみましょう- 例 # count function def count(n, m):    return int(m**0.5) -