代码
手写详解
第一次代码(一遍过)
package 数组;
import java.util.Scanner;
public class 有序数组的平方977 {
public static void main(String[] args) {
int n;
Scanner input = new Scanner(System.in);
System.out.println("请输入数组的长度");
n=input.nextInt();
int[] num = new int[n];
System.out.println("按照递增的顺序输入数组的元素");
for (int i = 0; i < num.length; i++) {
num[i]= input.nextInt();
}
int[] inspection = sortedSquares(num);
for (int a:inspection) {
System.out.println(a);
}
}
public static int[] sortedSquares(int[] nums) {
int[] temp = new int[nums.length];
int F,NF;
int i;
for (i = 0; i < nums.length; i++) {
if(nums[i]>=0){
break;
}
}
NF=i;
F=i-1;
for(i=0;i<temp.length;i++){
if(NF!=nums.length&&F>=0){
if(nums[NF]*nums[NF]>nums[F]*nums[F]){
temp[i]=nums[F]*nums[F];
F--;
}else{
temp[i]=nums[NF]*nums[NF];
NF++;
}
}else if(F<0){
temp[i]=nums[NF]*nums[NF];
NF++;
}else if(NF==nums.length){
temp[i]=nums[F]*nums[F];
F--;
}
}
return temp;
}
}