从 Python 中的数字列表中查找局部峰值元素索引的程序
假设我们有一个名为 nums 的数字列表,其长度至少为 2。我们必须找到列表中每个峰值的索引。该列表按升序排序。指数 i 是峰值,当 -
nums[i] > nums[i + 1] 当 i = 0
nums[i] > nums[i - 1] 当 i = n - 1
nums[i - 1] < nums[i] > nums[i + 1] else
因此,如果输入类似于 nums = [5, 6, 7, 6, 9],那么输出将是 [2, 4],因为索引 2 处的元素是 7,它大于两个邻居,并且项目位于索引 4 是 9,这比它的左项大。
示例
让我们看下面的实现来更好地理解
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]
以上是 从 Python 中的数字列表中查找局部峰值元素索引的程序 的全部内容, 来源链接: utcz.com/z/322602.html