双指针
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
int n = nums.size();
int i = 0, j = n - 1;
vector<int> ans(n, 0);
for (int k = n - 1; k >= 0; k--) {
if (nums[i] * nums[i] > nums[j] * nums[j]) {
ans[k] = nums[i] * nums[i];
i++;
}
else {
ans[k] = nums[j] * nums[j];
j--;
}
}
return ans;
}
};
时间复杂度:O(n)
空间复杂度:O(n)。