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

Pythonの数値リストからローカルピーク要素インデックスを見つけるプログラム


長さが2以上のnumsという数値のリストがあるとします。リスト内のすべてのピークのインデックスを見つける必要があります。リストは昇順でソートされます。インデックスiは、-

のときにピークになります。
  • nums [i]> nums [i + 1](i =0の場合)

  • nums [i]> nums [i-1](i =n-1の場合)

  • nums [i-1] nums [i + 1] else

したがって、入力がnums =[5、6、7、6、9]のようである場合、インデックス2の要素は7であり、2つの隣接要素よりも大きいため、出力は[2、4]になります。インデックス4は9で、これは左側のアイテムよりも大きくなっています。

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

  • ans:=新しいリスト

  • n:=numsのサイズ

  • nが1と同じ場合、

    • ansを返す

  • インデックスiとnumの数値numごとに、実行します

    • i>0かつi

      • nums [i-1] nums [i + 1]の場合、

        • ansの最後にiを挿入します

      • iが0と同じ場合、

        • num> nums [i + 1]の場合、

          • ansの最後にiを挿入します

      • iがn-1と同じ場合、

        • num> nums [i-1]の場合、

          • ansの最後にiを挿入します

  • ansを返す

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

def solve(nums):
   ans = []
   n = len(nums)

   if n == 1:
      return ans

   for i, num in enumerate(nums):
      if i > 0 and i < n - 1:
         if nums[i - 1] < num > nums[i + 1]:
            ans.append(i)

      if i == 0:
         if num > nums[i + 1]:
            ans.append(i)

      if i == n - 1:
         if num > nums[i - 1]:
            ans.append(i)

   return ans

nums = [5, 6, 7, 6, 9]
print(solve(nums))

入力

[5, 6, 7, 6, 9]

出力

[2, 4]

  1. リストから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

  2. リストから重複要素を削除するPythonプログラム?

    1つのリストには重複要素が含まれています。私たちのタスクは、重複なしの要素を含む別のリストを作成することです。 例 A::[2,3,4,3,4,6,78,90] Output::[2,3,4,6,78,90] アルゴリズム Step 1: create a list. Step 2: create a new list which is empty. Step 3: traverse every element in list. Step 4: if element is not present in the list return true. Step 5: append in the