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

要素数をカウントするプログラムがPythonの正しい位置に配置されている


numsという数字のリストがあるとすると、リストを並べ替えるときに、正しいインデックスに存在する要素の数を見つける必要があります。

したがって、入力が[2、8、4、5、11]の場合、要素2と11は正しい位置にあるため、出力は2になります。ソートされたシーケンスは[2、4、5、8、11]

になります

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

  • s:=リスト番号を並べ替える
  • count:=0
  • 0からnumsのサイズの範囲のiの場合は、
    • s[i]がnums[i]と同じ場合、
      • count:=count + 1
  • 返品数

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

class Solution:
   def solve(self, nums):
      s = sorted(nums)
      count = 0
      for i in range(len(nums)):
         if s[i] == nums[i]:
            count += 1
      return count
ob = Solution()
print(ob.solve([2, 8, 4, 5, 11]))

入力

[2, 8, 4, 5, 11]

出力

2

  1. Pythonで要素の合計が2の累乗であるインデックスペアをカウントするプログラム

    numsという番号のリストがあるとします。インデックスペアの数i、jを見つける必要があります。ここで、i =kに対して2^kに等しくなるようにします。 したがって、入力がnums =[1、2、6、3、5]のようである場合、(6、2)のような3つのペアの合計があるため、出力は3になります。合計は8、(5、3) :合計は8、(1、3)合計は4 これを解決するには、次の手順に従います- res:=0 c:=に存在する各要素の頻度を含むマップ numsのxごとに、実行します 0から31の範囲のjの場合、実行 res:=res + c [(2 ^ j)-x]

  2. PythonでnノードのBSTの数をカウントするプログラム

    n個の異なるノードがあるとします。すべてが異なります。二分探索木を形成するためにそれらを配置できる方法の数を見つける必要があります。二分探索木で知っているように、左側のサブツリーは常に小さい値を保持し、右側のサブツリーは大きい値を保持します。 これを解決するために、カタラン数を見つけます。カタラン数C(n)は、n個の異なるキーを持つ二分探索木を表します。式は次のようになります $$ C(n)=\ frac {(2n)!} {(n + 1)!\ times n!} $$ したがって、入力がn =3の場合、出力は5になります。 これを解決するには、次の手順に従います- 関数ncr