博客
关于我
JAVA 最短连续无序子数组
阅读量:138 次
发布时间:2019-02-27

本文共 1041 字,大约阅读时间需要 3 分钟。

纪念一下自己在力扣上第二道能一遍提交就通过的题。

要求:给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。

思路:先创建一个新数组存放原数组排序后的数组,再从左往右判断第一个不相等的元素并返回下标记作start,然后再从右往左判断第一个不相等的元素并返回下标end,二者作差后再加一就是答案了。

具体代码如下:

import java.util.Arrays;public static class Test1_28 {    public int findUnsortedSubarray(int[] nums) {        int[] arr = new int[nums.length];        for (int i = 0; i < nums.length; i++) {            arr[i] = nums[i];        }        Arrays.sort(nums);        int start = 0, end = 0,i = 0;        for (; i < nums.length; i++) {            if(arr[i] != nums[i]) {                start = i;                break;            }        }        if(i >= nums.length)            return 0;        for (i = nums.length - 1; i >= 0; i--) {            if(arr[i] != nums[i]) {                end = i;                break;            }        }        return (end - start + 1);    }    public static void main(String[] args) {        int[] nums = {2,6,4,8,10,9,15};        System.out.println(findUnsortedSubarray(nums));    }}

运行结果示例:

转载地址:http://eqdd.baihongyu.com/

你可能感兴趣的文章
nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>
Nessus漏洞扫描教程之配置Nessus
查看>>
Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
查看>>
nestJS学习
查看>>
NetApp凭借领先的混合云数据与服务把握数字化转型机遇
查看>>
NetBeans IDE8.0需要JDK1.7及以上版本
查看>>
netcat的端口转发功能的实现
查看>>
netfilter应用场景
查看>>
netlink2.6.32内核实现源码
查看>>
Netpas:不一样的SD-WAN+ 保障网络通讯品质
查看>>
NetScaler的常用配置
查看>>
netsh advfirewall
查看>>
NETSH WINSOCK RESET这条命令的含义和作用?
查看>>
Netty WebSocket客户端
查看>>
netty 主要组件+黏包半包+rpc框架+源码透析
查看>>
Netty 异步任务调度与异步线程池
查看>>
Netty中集成Protobuf实现Java对象数据传递
查看>>
Netty事件注册机制深入解析
查看>>
Netty原理分析及实战(四)-客户端与服务端双向通信
查看>>
Netty和Tomcat的区别已经性能对比
查看>>