题目描述
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
示例 1:
输入:nums = [-4,-1,0,3,10]
输出:[0,1,9,16,100]
解释:平方后,数组变为 [16,1,0,9,100]
排序后,数组变为 [0,1,9,16,100]
示例 2:
输入:nums = [-7,-3,2,3,11]
输出:[4,9,9,49,121]
代码片
/*
* @lc app=leetcode.cn id=977 lang=javascript
*
* [977] 有序数组的平方
*/
// @lc code=start
/**
* @param {number[]} nums
* @return {number[]}
*/
var sortedSquares = function(nums) {
let left = 0,
right = nums.length - 1;
let res = [];
while (left <= right) {
let leftResult = nums[left] * nums[left],
rightResult = nums[right] * nums[right];
if(leftResult > rightResult) {
res.unshift(leftResult);
left++;
} else {
res.unshift(rightResult);
right--;
}
}
return res;
};
// @lc code=end