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]
-
リストから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
-
リストから重複要素を削除する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