从 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

回到顶部