题目描述
示例1
示例2
做题思路
代码1(暴力解法)
class Solution {
    public int[] sortedSquares(int[] nums) {
        for(int i=0;i<nums.length;i++){
            nums[i]=nums[i]*nums[i];
        }
        for(int j=0;j<nums.length;j++){
            for(int k=j+1;k<nums.length;k++){
                int temp;
                if(nums[j]>nums[k]){
                    temp=nums[j];
                    nums[j]=nums[k];
                    nums[k]=temp;
                }
            }
        }
        return nums;
    }
}代码2(双指针)
class Solution {
    public int[] sortedSquares(int[] nums) {
        int head=0;//指向nums起始位置
        int tail=nums.length-1;//指向nums终止位置
        int[] result=new int[nums.length];//定义新数组用来存储最后结果
        int index=result.length-1;//指向新数组的终止位置
        while(head<=tail){
            if(nums[head]*nums[head]>nums[tail]*nums[tail]){
                result[index]=nums[head]*nums[head];
                index--;
                head++;
            }else{
                result[index]=nums[tail]*nums[tail];
                index--;
                tail--;
            }
        }
        return result;
    }
}









