题目
给你一个已经 排好序 的整数数组 和整数 、 、 。对于数组中的每一个元素 ,计算函数值 ,请 按升序返回数组 。
解题
在时间复杂度为解决问题
def sortTransformedArray(nums, a, b, c):def f(x):return a * x * x + b * x + cn = len(nums)result = [0] * nleft, right = 0, n - 1index = n - 1 if a >= 0 else 0while left <= right:left_val = f(nums[left])right_val = f(nums[right])if a >= 0:if left_val > right_val:result[index] = left_valleft += 1else:result[index] = right_valright -= 1index -= 1else:if left_val < right_val:result[index] = left_valleft += 1else:result[index] = right_valright -= 1index += 1return resultnums = [-4, -2, 2, 4]
a, b, c = 1, 3, 5
print(sortTransformedArray(nums, a, b, c))nums = [-4, -2, 2, 4]
a, b, c = -1, 3, 5
print(sortTransformedArray(nums, a, b, c))
[3, 9, 15, 33]
[-23, -5, 1, 7]