zoukankan      html  css  js  c++  java
  • 《程序员代码面试指南》第八章 数组和矩阵问题 需要排序的最短子数组长度

    题目

    需要排序的最短子数组长度
    

    java代码

    package com.lizhouwei.chapter8;
    
    /**
     * @Description: 需要排序的最短子数组长度
     * @Author: lizhouwei
     * @CreateDate: 2018/4/29 8:03
     * @Modify by:
     * @ModifyDate:
     */
    public class Chapter8_5 {
    
        public int getMinLength(int[] arr) {
            if (arr == null || arr.length < 2) {
                return 0;
            }
            int minIndex = -1;
            int min = arr[arr.length - 1];
            for (int i = arr.length - 2; i > -1; i--) {
                if (arr[i] > min) {
                    minIndex = i;
                } else {
                    min = Math.min(min, arr[i]);
                }
            }
            if (minIndex == -1) {
                return 0;
            }
            int maxIndex = -1;
            int max = arr[0];
            for (int i = 1; i < arr.length; i++) {
                if (arr[i] < max) {
                    maxIndex = i;
                } else {
                    max = Math.max(max, arr[i]);
                }
            }
    
            return maxIndex - minIndex + 1;
    
    
        }
    
        //测试
        public static void main(String[] args) {
            Chapter8_5 chapter = new Chapter8_5();
            int[] arr = {1, 5, 3, 4, 2, 6, 7};
            int res = chapter.getMinLength(arr);
            System.out.print("{1, 5, 3, 4, 2, 6, 7 }中需要排序的最大长度:" + res);
        }
    }
    

    结果

  • 相关阅读:
    IAccessible ( 一 )
    object sender,EventArgs e的一些讲解
    C# 操作符重载
    MSAA简介
    小试NArrange
    C++宏
    Ext.form.ComboBox简单用法
    SQL SERVER 收缩数据库的命令
    ext.grid的配置属性和方法
    磁盘阵列
  • 原文地址:https://www.cnblogs.com/lizhouwei/p/8970336.html
Copyright © 2011-2022 走看看