581 Shortest Unsorted Continuous Subarray

news/2023/12/1 9:16:03

题目详情

Given an integer array, you need to find one continuous subarray that if you only sort this subarray in ascending order, then the whole array will be sorted in ascending order, too.
You need to find the shortest such subarray and output its length.

题目的意思是输入一个数组,这个数组可能是排序好的,也可能是乱序的。如果数组是乱序的,我们就要找出这个数组的最小子数组,以满足,只要排序好这个子数字,整个数字就是有序的。

Example 1:
Input: [2, 6, 4, 8, 10, 9, 15]
Output: 5
Explanation: 只需要排序[6,4,8,10,9]就可以保证整个数组的有序

思路

  • 大体思路是这样的:如果当前元素比它前面的元素中的最大的值小,那它就在待排序的子数组里;如果当前元素比它后面元素中的最小值要大,那它也需要包含在待排序的子数组里。
  • 我们用一个变量(max)来保存遍历过的元素中的最大值,用一个变量(min)来保存从数组尾部遍历的元素中的最小值。
  • 然后我们只要通过遍历找到,最后一位待排序元素和最前面的待排序元素就可以了。

解法

    public int findUnsortedSubarray(int[] nums) {
        int length = nums.length;
        int start =-1 ;
        int end = -2;
        int min = nums[length-1];
        int max = nums[0];
        
        for(int i=1;i<length;i++){
            max = Math.max(max, nums[i]);
            min = Math.min(min, nums[length-i-1]);
            
            if(nums[i] < max){
                end = i;
            }
            if(nums[length-1-i] > min){
                start = length-1-i;
            }
        }
        return end-start+1;
    }

http://www.niftyadmin.cn/n/1662369.html

相关文章

每个好产品都会触摸到用户的G点,让他们产生快感

1、 什么是用户“G点”? 我在这里将这个G点定义为&#xff1a;用户的爽点&#xff0c;即能让用户眼前一亮并感觉到很爽的地方!这跟现实生活中的G点有点异曲同工哦&#xff0c;你们懂的! 2、G点是互联网产品获得成功的必要条件 成功的互联网产品&#xff0c;无不都是满足了用户…

vue.js中的track-by

无track-by情况&#xff1a;数据修改时&#xff0c;无论值是否被修改&#xff0c;dom都被重新渲染&#xff08;控制台可以看到&#xff09; 加入track-by属性&#xff1a;数据修改时&#xff0c;不变数据所在的dom不被重新渲染&#xff0c;已改变的数据所在dom才被重新渲染

Toolbar中Menu的背景颜色、位置、同时显示文字等设置(亲测)

先看效果图 1.改变ToolBar菜单背景颜色和位置 黑色背景白色文字 <style name"AppTheme.PopupOverlay" parent"ThemeOverlay.AppCompat.Light" > <!-- 是否覆盖锚点&#xff0c;默认为true&#xff0c;即盖住Toolbar --> <item name&q…

Webpack简介使用教程

。 了解Webpack相关 * 什么是webpack * Webpack是一个模块打包器。 * 在Webpack看来, 前端的所有资源文件(js/css/img/less/…)都会作为模块处理 * 它将根据模块的依赖关系进行静态分析&#xff0c;生成对应的静态资源 * 理解Loader * Webpack 本身只能处理 JavaScript 模…

OpenStack 高可用(HA)和灾备(DR)解决方案

1 基础知识 1.1 高可用 &#xff08;High Availability&#xff0c;简称 HA&#xff09; 高可用性是指提供在本地系统单个组件故障情况下&#xff0c;能继续访问应用的能力&#xff0c;无论这个故障是业务流程、物理设施、IT软/硬件的故障。最好的可用性&#xff0c; 就是你的一…

JS如何模拟鼠标点击X,Y坐标

现在我有个窗口坐标X,Y. 如何利用JS点击该坐标? document.body.onclick function(){e arguments[0];var dt e.target,stag dt.tagName.toLowerCase();document.getElementById("out").innerHTML stag; }; var simulateClick function(){var evt document.cre…

zabbix中文乱码解决

在Windows系统中进入"C:\Windows\Fonts"中找到"常规楷体"&#xff0c;通过传输软件上传到zabbix server服务器"/usr/share/zabbix/fonts"目录中。 修改php页面指定的字体文件&#xff1a;vi /usr/share/zabbix/include/defines.inc.php 修改defi…

git使用教程简介指令版

git clone url 下载网上的工程远程仓库权限配置 第一步&#xff1a;创建生成ssh-key秘钥 运行命令 ssh-keygen -t rsa -C "邮箱地址" 会生成一个ssh-key密码&#xff0c;在C盘文件夹中存储C:\Users\Administrator.ssh中&#xff1a;一个公钥.一个私钥 *第二步&…

【算法学习笔记】21:Bellman-Ford算法(有边数限制的单源点最短路)

1 应用&#xff1a;计算有边数限制的单源点最短路 Bellman-Ford算法用于在存在负权边的图上&#xff0c;求单源点最短路&#xff0c;时间复杂度O(nm)O(nm)O(nm)。但是因为该算法的改进版SPFA&#xff0c;在求单源点最短路的问题上几乎总是优于Bellman-Ford算法&#xff0c;所以…

oracle 无效字符

多写了; 转载于:https://www.cnblogs.com/zfzf1/p/8405312.html

hadoop之 map个数控制

hadooop提供了一个设置map个数的参数mapred.map.tasks&#xff0c;我们可以通过这个参数来控制map的个数。但是通过这种方式设置map的个数&#xff0c;并不是每次都有效的。原因是mapred.map.tasks只是一个hadoop的参考数值&#xff0c;最终map的个数&#xff0c;还取决于其他的…

js中的window

BOM就是浏览器窗口对象模型&#xff0c;顶级对象就是window window&#xff0c;document都是一个实例对象&#xff0c;他们都属于Object&#xff0c;你不可以在new他&#xff0c;必须直接调用他的方法和属性 Window对象共有七个属性&#xff1a; defauleStatus&#xff1a;指…

【算法学习笔记】22:SPFA算法(带负权边单源点最短路、检测负权回路)

1 简述 SPFA算法是对Bellman-Ford算法的优化&#xff0c;也是用于在存在负权边的图上&#xff0c;求单源点最短路&#xff0c;一般情况下时间复杂度可以看作O(m)O(m)O(m)的&#xff0c;最坏情况下时间复杂度是O(nm)O(nm)O(nm)。 虽然SPFA算法是对Bellman-Ford算法的优化&…

js中startWith、endWith 函数不能在任何浏览器兼容的问题

在做js测试的时候用到了startsWith函数&#xff0c;但是他并不是每个浏览器都有的&#xff0c;所以我们一般要重写一下这个函数&#xff0c;具体的用法可以稍微总结一下 在有些浏览器中他是undefined 所以我们可以这样的处理一下、 if (typeof String.prototype.startsWith ! f…

【算法学习笔记】23:Floyd算法(多源汇最短路)

1 简述 Floyd算法用于求多源汇最短路&#xff0c;时间复杂度O(n3)O(n^3)O(n3)。 首先用邻接矩阵里的d[i,j]d[i, j]d[i,j]存储所有的边&#xff08;重边的时候取minminmin&#xff09;&#xff0c;然后就是三重循环&#xff0c;思路也是如果从iii到kkk&#xff0c;再从kkk到jj…

【算法学习笔记】24:Prim算法与Kruskal算法(最小生成树)

Prim算法和Dijkstra算法很相似&#xff0c;而且也按照是不是稀疏图分成了两种&#xff1a; 对于稠密图&#xff0c;用朴素版的Prim算法&#xff0c;时间复杂度O(n2)O(n^2)O(n2)对于稀疏图&#xff0c;用堆优化版的Prim算法&#xff0c;时间复杂度O(mlogn)O(mlogn)O(mlogn) Kr…
最新文章