在 Python 中找到已排序的平方元素列表的程序

在 Python 中找到已排序的平方元素列表的程序

假设列表 nums 包含数字,元素按升序排列,我们必须对元素进行平方并按排序顺序返回结果。

因此,如果输入为 nums = [-8,-3,0,5,6],则输出将为[0,9,25,36,64]

要解决这个问题,我们将按照以下步骤进行 –

  • n := nums 的大小
  • l := 0
  • r := n – 1
  • index := n – 1
  • res :大小与 nums 相同的列表,并用 0 填充它
  • while index >= 0,执行以下操作
    • 如果| nums [l] | > | nums [r] |,则
      • res [index]:= nums [l] * nums [l]
      • l := l + 1
    • 否则,
      • res [index]:= nums [r] * nums [r]
      • r := r – 1
    • index := index – 1
  • 返回 res

示例

让我们看看以下实现以更好地理解 –

def solve(nums):
   n = len(nums)
   l = 0
   r = n - 1
   index = n - 1
   res = [0 for i in range(len(nums))]
   while index >= 0:
      if abs(nums[l]) > abs(nums[r]):
         res[index] = nums[l] * nums[l]
         l += 1
      else:
         res[index] = nums[r] * nums[r]
         r -= 1
      index -= 1

   return res

nums = [-8, -3, 0, 5, 6]
print(solve(nums))

输入

[-8, -3, 0, 5, 6]

输出

[0, 9, 25, 36, 64]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程