在 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
- 如果| nums [l] | > | nums [r] |,则
- 返回 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]