您的位置:首页 > 其它

【LeetCode】977. Squares of a Sorted Array

2019-04-09 00:43 113 查看

原题网址:https://leetcode.com/problems/squares-of-a-sorted-array/ 

解题思路:

我的解:毫无疑问的暴力解。。。。

[code] public int[] sortedSquares(int[] A) {
int len = A.length;
int[] B = new int[len];
for(int i = 0; i < len; i++){
B[i] = A[i] * A[i];
}
for(int i = 0; i < len; i++){
for(int j = 1; j < len - i; j++){
if(B[j-1] > B[j]){
int temp;
temp = B[j-1];
B[j-1] = B[j];
B[j] = temp;
}
}
}
return B;
}

 最优解:

[code] public int[] sortedSquares(int[] A) {
int n = A.length;
int[] result = new int
;
int i = 0, j = n - 1;
for (int p = n - 1; p >= 0; p--) {
if (Math.abs(A[i]) > Math.abs(A[j])) {//首先要能够考虑到abs函数
result

= A[i] * A[i]; i++; } else { result[p] = A[j] * A[j]; j--; } } return result; }

[p] 1.首先要能够考虑到abs函数

 public static double abs(double a)

2.最大值一定是从最左或者最右的值产生;

3.分别设置最左最右索引i和j,不断缩小范围。(这个想法实在是高啊,佩服佩服~)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: