/*
* @lc app=leetcode.cn id=977 lang=typescript
*
* [977] 有序数组的平方
*/
//双指针法
// @lc code=start
function sortedSquares(nums: number[]): number[] {
let fast = 0,
slow = 0,
result: number[] = [];
for (let i = 0, j = nums.length - 1; i <= j; ) {
fast = Math.abs(nums[i]);
slow = Math.abs(nums[j]);
if (fast < slow) {
//倒序插入(因为最大值必在最左或最右)
result.unshift(slow * slow);
j--;
} else {
result.unshift(fast * fast);
i++;
}
}
return result;
}
// @lc code=end