河南软件开发公司有哪些日照seo公司
简直觉得这个题目就是 为了让我好好深入学习一下 SORT函数 量身定制的
及时更新 我的第一种方法可以通过五分之一
新的方法通过三分之一 并且更简单
初步 第一种
import java.util.Scanner;import java.util.Arrays;
public class Main {public static void main(String args[]) {Scanner myin = new Scanner(System.in);int n=myin.nextInt();int fir[]=new int[n];int sec[]=new int[n];int count=0;for(int i=0;i<n;i++) { fir[i]= myin.nextInt(); sec[i]=fir[i];}Arrays.sort(fir);if(!(check(fir, sec))) {for(int i=0; i<=n; i++) {//使用sort函数 排序固定的位置Arrays.sort(sec,0,i);if(check(fir, sec)) {System.out.println(i);break;}}}else {System.out.println(0);}}public static boolean check(int[] arr1, int[] arr2) {for (int i = 0; i < arr1.length; i++) {if (arr1[i] != arr2[i]) {return false;}}return true;}
}
新更新(1/3)
AI的题解考虑了许多因素 包括最后还考虑了数组长度不相等的情况 但是是没有必要的 因为在本题中 截取的数组一定相同
不过也总归是有用的 学习了 复制数组 判断数组的快捷语句
//复制数组到指定数组
int arr1[]= Arrays.copyOfRange(arr2,str,end);
//比较数组
boolean con = Arrays.equals(arr1,arr2);
import java.util.Scanner;
import java.util.Arrays;
public class Main {public static void main(String args[]) {Scanner myin = new Scanner(System.in);int n = myin.nextInt();int[] sec = new int[n];int[] fir = new int[n];for (int i = 0; i < n; i++) {sec[i] = myin.nextInt();fir[i] = sec[i];}Arrays.sort(fir);int k = n;while (k > 0 && sec[k - 1] == fir[k - 1]) {k--;}if (k == 0) {System.out.println(0);return;}// 下面的都不需要//int[] secPrefix = Arrays.copyOfRange(sec, 0, k);//int[] firPrefix = Arrays.copyOfRange(fir, 0, k);//Arrays.sort(secPrefix);//if (Arrays.equals(secPrefix, firPrefix)) {System.out.println(k);// } else {// System.out.println(k + 1);// }}
}