977. 有序数组的平方
给你一个按 非递减顺序 排序的整数数组 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]
双指针法经典题目 | LeetCode:977.有序数组的平方_哔哩哔哩_bilibili
/**
* @param {number[]} nums
* @return {number[]}
*/
var sortedSquares = function(nums) {
// 定义新数组和对应下标
let result = []
let k = nums.length -1
// 定义两个指针,哪个指针对应的值大,就把大的放到新数组
let i = 0
let j = nums.length -1
while(i<=j){
if(nums[i]*nums[i]>nums[j]*nums[j]){
result[k]=nums[i]*nums[i]
k--
i++
}
else{
result[k]=nums[j]*nums[j]
k--
j--
}
}
return result
};