【力扣刷题】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]
提示:
1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums
已按 非递减顺序 排序
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
int l=0,r=nums.size()-1,cnt=nums.size()-1;
vector<int> a(nums.size(), 0);
while(l<=r){
if(nums[l]*nums[l]>nums[r]*nums[r]){
a[cnt--]=nums[l]*nums[l];
l++;
}else{
a[cnt--]=nums[r]*nums[r];
r--;
}
}
return a;
}
};
版权声明:
作者:Zhang, Hongxing
链接:http://zhx.info/archives/341
来源:张鸿兴的学习历程
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
文章目录
关闭