巧用sort

简直觉得这个题目就是 为了让我好好深入学习一下 SORT函数 量身定制的

及时更新 我的第一种方法可以通过五分之一

新的方法通过三分之一 并且更简单

初步 第一种

java 复制代码
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的题解考虑了许多因素 包括最后还考虑了数组长度不相等的情况 但是是没有必要的 因为在本题中 截取的数组一定相同

不过也总归是有用的 学习了 复制数组 判断数组的快捷语句

java 复制代码
//复制数组到指定数组
int arr1[]= Arrays.copyOfRange(arr2,str,end);
//比较数组
boolean con = Arrays.equals(arr1,arr2);
java 复制代码
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);
      //  }
    }
}
相关推荐
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
starlaky5 天前
Django入门笔记
笔记·django
勇气要爆发5 天前
吴恩达《LangChain LLM 应用开发精读笔记》1-Introduction_介绍
笔记·langchain·吴恩达
B站计算机毕业设计超人5 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
计算机程序猿学长5 天前
大数据毕业设计-基于django的音乐网站数据分析管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
大数据·django·课程设计
B站计算机毕业设计超人5 天前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
一个人旅程~5 天前
如何用命令行把win10/win11设置为长期暂停更新?
linux·windows·经验分享·电脑
勇气要爆发5 天前
吴恩达《LangChain LLM 应用开发精读笔记》2-Models, Prompts and Parsers 模型、提示和解析器
android·笔记·langchain
qianshanxue115 天前
计算机操作的一些笔记标题
笔记