0
点赞
收藏
分享

微信扫一扫

有序数组的平方(简单)

野见 2022-01-26 阅读 90
javaleetcode

题目描述

示例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;
    }
}
举报

相关推荐

0 条评论