zoukankan      html  css  js  c++  java
  • 广联达2021校园招聘

    时间限制:3000ms

    内存限制:589824Kb

    题目描述:

    有一种排序算法定义如下,该排序算法每次只能把一个元素提到序列的开头,例如2,1,2,4,只需要一次操作把1提到序列起始位置就可以使得原序列从小到大有序。现给你个乱序的1-N的的排序,请你计算最少需要多少次操作才可以使得原序列从小到大有序。

    输入描述

      输入第一行包含一个正整数N,表示序列的长度。(1<=N<=100000)

             接下来一行有N个正整数,表示序列中的N个元素,中间用空格隔开。(1<=a_i<=N)

    输出描述

      输出仅包含一个正整数,表示最少的操作次数。

    样例输入

      4

              2 1 3 4

    样例输出

      1

    思路:

      找出最长的递增有序的序列。例如:6 8 1 3 2 7 4 9 最长的递增序列长度是8 9。输出8-2=6。本题解法不限于元素范围是1-N,即元素大小任意。

    import java.util.Arrays;
    import java.util.Scanner;
    
    class Node implements Comparable{
        int value;
        int index;
        public Node(int value,int index){
            this.value = value;
            this.index = index;
        }
    
        @Override
        public int compareTo(Object o) {
            return this.value - ((Node)o).value;
        }
    }
    
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int Num = scanner.nextInt();
            Node[] Nodes = new Node[Num];
            for (int i = 0; i < Num; i++) {
                Nodes[i] = new Node(scanner.nextInt(),i);
            }
            Arrays.sort(Nodes);
            int temp = 1;
            for (int i = Num-2; i > -1 ; i--) {
                if (Nodes[i].index > Nodes[i+1].index) {
                    System.out.println(Num - temp);
                    break;
                }else {
                    temp++;
                }
            }
        }
    }
    

      

  • 相关阅读:
    机器学习任务攻略
    2.0 线性模型_李宏毅2021
    PyTorch
    jupyter切换虚拟环境
    python中yield的用法详解——最简单,最清晰的解释
    Full卷积、Same卷积、Valid卷积、带深度的一维卷积
    计算机环境变量的配置,以java为例以及eclipse简要设置
    conda创建/移除虚拟环境
    bak
    JSoup抓取本地页面
  • 原文地址:https://www.cnblogs.com/iuyy/p/13379543.html
Copyright © 2011-2022 走看看