题目链接
题目描述
解题思路
双指针思想:因为结果数组的最大值只可能在原数组开头或者末尾;依次进行头尾双指针遍历即可得到结果数组的非递减顺序;
实现代码:
class Solution {public int[] sortedSquares(int[] nums) {int n = nums.length;int[] ans = new int[n];for (int i = 0, j = n - 1, pos = n - 1; i <= j;) {if (nums[i] * nums[i] > nums[j] * nums[j]) {ans[pos] = nums[i] * nums[i];++i;} else {ans[pos] = nums[j] * nums[j];--j;}--pos;}return ans;}}
