有序数组的平方(简单)

野见

关注

阅读 87

2022-01-26

题目描述

示例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)

0 0 举报