题目描述
给定一个按非递减顺序排序的整数数组 A
,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。
示例1:
输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100]
示例2:
输入:[-7,-3,2,3,11] 输出:[4,9,9,49,121]
解题思路:
在这里其实就是数组大小的排序问题,好在Java当中Arrays类提供了对数组的排序方法,此题难度不大,但是可以向更快的时间复杂度与更精简的空间复杂度方向进行优化。
1、首先先将数组中的每个元素变成该元素的平方值
2、采用Arrays类中的sort方法对该数组进行排序
3、最后返回排序好的数组
具体代码:
class Solution {
public int[] sortedSquares(int[] A) {
for (int i = 0; i < A.length; i++) {
A[i] = A[i] * A[i];
}
Arrays.sort(A);
return A;
}
}