有多少个长度为n的数组 相邻两项的最大公约数小于等于k
展开全部
先按大小排序,然后截取前四分之一和最后四分之一凑成新的数组。(代码手写的,没验证过,可能会有错误。另外排序完全可以使用Arrays.sort()来完成)<pre t="code" l="java">class MyProgram{
//对数组进行排序,从小到大
public int[] mySory(int[] arr){
int temp;
for(int j = arr.length();j>0;j--){
for(int i = 1;i<arr.length();i++){
if(arr[i]>arr[i+1]){
temp = arr[i+1];
arr[i+1]=arr[i];
arr[i]=temp;
}
}
}
return arr;
}
/从数组中选择头尾,并分成两个和相近的数组
public int[] myArr(int arr){
int length = arr.length()/2;
int[] arrA = new int[length];
for(int i = 0;i<length/2;i++){
arrA[i] = arr[i];
}
for(int i = 0;i<length/2;i++){
arra[length/2+i+1]=arr[length-i];
}
return arrA;
}
}
//对数组进行排序,从小到大
public int[] mySory(int[] arr){
int temp;
for(int j = arr.length();j>0;j--){
for(int i = 1;i<arr.length();i++){
if(arr[i]>arr[i+1]){
temp = arr[i+1];
arr[i+1]=arr[i];
arr[i]=temp;
}
}
}
return arr;
}
/从数组中选择头尾,并分成两个和相近的数组
public int[] myArr(int arr){
int length = arr.length()/2;
int[] arrA = new int[length];
for(int i = 0;i<length/2;i++){
arrA[i] = arr[i];
}
for(int i = 0;i<length/2;i++){
arra[length/2+i+1]=arr[length-i];
}
return arrA;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询