1.题目描述
2.代码示例
class Solution {
public int[] sortedSquares(int[] nums) {
int a=0;
int []b=new int[nums.length];
int c=0;
//将每个元素平方
for(int i=0;i<nums.length;i++){
a=nums[i];
nums[i]=a*a;
}
//平方之后进行冒泡排序
for(int i=0;i<nums.length;i++){
for(int j=0;j<nums.length-1;j++){
if(nums[j]>nums[j+1]){
c=nums[j];
nums[j]=nums[j+1];
nums[j+1]=c;
}
}
}
return nums;
}
}
3.题解
1.暴力解法:先将每个元素平方再把平方后的数组排序。
2.双指针法:(由于平方前的数组是有序的)
class Solution {
public int[] sortedSquares(int[] nums) {
int left=0;
int right=nums.length-1;
int []b=new int[nums.length];
int len=right;
while(left<=right){
if(nums[left]*nums[left]>nums[right]*nums[right]){
b[len]=nums[left]*nums[left];
left++;
len--;
}
else{
b[len]=nums[right]*nums[right];
right--;
len--;
}
}
return b;
}
}
4.问题总结
用三目运算符求绝对值:
((a>0)?-a:a)