360. Sort Transformed Array
https://leetcode.com/problems/sort-transformed-array/
Input: nums = [-4,-2,2,4], a = 1, b = 3, c = 5
Output: [3,9,15,33]Input: nums = [-4,-2,2,4], a = -1, b = 3, c = 5
Output: [-23,-5,1,7]Thoughts
Code
class Solution:
def sortTransformedArray(self, nums: List[int], a: int, b: int, c: int) -> List[int]:
def cal(x):
return a * x ** 2 + b * x + c
i, j, res = 0, len(nums) - 1, []
while i <= j:
p, q = cal(nums[i]), cal(nums[j])
if p > q and a > 0 or p < q and a <= 0:
i += 1
res.append(p)
else:
j -= 1
res.append(q)
if a > 0: res.reverse()
return res
Analysis
Last updated