[抄题]:

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: You need to sort [6, 4, 8, 10, 9] in ascending order to make the whole array sorted in ascending order.

[暴力解法]:

时间分析:

空间分析:

[优化后]:

时间分析:

空间分析:

[奇葩输出条件]:

题目有歧义:其实没有“最短”的概念,找到一个范围就行了

[奇葩corner case]:

1234,输出0。因此i小j大的初始值是-1,0。别的地方不知道能否试试?

[思维问题]:

指针对撞一直走,但是没想到最后会ij颠倒大小。

[一句话思路]:

i小j大变成了i大j小,所以结果是i - j + 1

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

  1. 不可能i j,l r两对指针同时走的,一对就够了

[二刷]:

[三刷]:

[四刷]:

[五刷]:

[五分钟肉眼debug的结果]:

[总结]:

指针对撞一直走,但是没想到最后会ij颠倒大小。i - j + 1

[复杂度]:Time complexity: O(n) Space complexity: O(1)

[英文数据结构或算法,为什么不用别的数据结构或算法]:

[关键模板化代码]:

[其他解法]:

[Follow Up]:

[LC给出的题目变变变]:

[代码风格] :

class Solution {public int findUnsortedSubarray(int[] nums) {//ccif (nums == null || nums.length == 0) {return 0;}//ini: l rint min = Integer.MAX_VALUE, max = Integer.MIN_VALUE, i = -1, j = 0;//for loopfor (int l = 0, r = nums.length - 1; r >= 0; l++, r--) {max = Math.max(nums[l], max);if (nums[l] != max) {i = l;}min = Math.min(nums[r], min);if (nums[r] != min) {j = r;}}return i - j + 1;}
}

View Code

转载于:https://www.cnblogs.com/immiao0319/p/8905772.html

581. Shortest Unsorted Continuous Subarray连续数组中的递增异常情况相关推荐

  1. LeetCode 581. Shortest Unsorted Continuous Subarray

    题目: Given an integer array, you need to find one continuous subarray that if you only sort this suba ...

  2. leetcode 581. Shortest Unsorted Continuous Subarray | 581. 最短无序连续子数组(单调栈)

    题目 https://leetcode.com/problems/shortest-unsorted-continuous-subarray/ 题解 乍一看,没思路,直奔 Related Topics ...

  3. 【leetcode】581. Shortest Unsorted Continuous Subarray

    题目如下: 解题思路:本题我采用的是最简单最直接最粗暴的方法,把排序后的nums数组和原始数组比较即可得到答案. 代码如下: /*** @param {number[]} nums* @return ...

  4. LeetCode 581. 最短无序连续子数组(Shortest Unsorted Continuous Subarray)

    581. 最短无序连续子数组 581. Shortest Unsorted Continuous Subarray 题目描述 给定一个整型数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序 ...

  5. C#LeetCode刷题之#581-最短无序连续子数组( Shortest Unsorted Continuous Subarray)

    问题 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序. 你找到的子数组应是最短的,请输出它的长度. 输入: [2, 6, 4, 8, 10, ...

  6. 28/100. Shortest Unsorted Continuous Subarray

    给定一个整数数组nums,需要找到一个连续的子数组,该子数组满足条件:如果只按升序对这个子数组排序,那么整个数组也将按升序排序.返回子数组的长度. 对nums进行排序,生成一个新数组newNums,需 ...

  7. LeetCode Shortest Unsorted Continuous Subarray

    题意:给出一个数组,求其最小的无序数组,这个无序数组经过排序后,整个数据也是排好序的 思路:将数据排序,然后与原来的数组比较,从开始找到不相等的位置,然后从尾部开始找到不相等的位置,两个位置差就是最小 ...

  8. js算法---寻找连续数组中的缺失数

    寻找连续数组中的缺失数 给定一个数组,给出上边界和下边界数据,里面的数是连续的,但是缺失了一个,要求找出这个缺失的数 例如:arr=[2,1,3,5,4,8,9,6] 一共9个数,已知上边界为1,下边 ...

  9. leetcode-581-Shortest Unsorted Continuous Subarray

    题目描述: Given an integer array, you need to find one continuous subarray that if you only sort this su ...

最新文章

  1. 【Spring】工厂模式解耦
  2. 设计模式(35)-----设计模式阶段性总结(一句话概括一个模式)
  3. 【 MATLAB 】画出一个复指数序列的幅度、相位、实部和虚部的MATLAB脚本
  4. SQL-Oracle游标
  5. 【RAY TRACING THE REST OF YOUR LIFE 超详解】 光线追踪 3-5 random direction ONB
  6. 汇编转跳指令 (J开头的)
  7. java方法重载和重载方法_Java 8的方法参考进一步限制了重载
  8. ActiveMQ –经纪人网络解释–第2部分
  9. 日期setHours()方法以及JavaScript中的示例
  10. 信息学奥赛一本通(2049:【例5.19】字符串判等)
  11. c语言 获取可用内存大小,C语言实现获取内存信息并输出的实例
  12. HTML中select的option设置selected=“selected“无效的解决方案
  13. Linux下的时间戳
  14. 【编程算法】跳跃游戏ⅠⅡⅢ(Python解法)
  15. [密码学]利用docker安装与使用sagemath
  16. android 查看 屏幕刷新率,屏幕刷新率检查app
  17. chemdraw如何改中文_教您如何掌握ChemDraw页面设置技巧
  18. 区块链溯源相比传统追溯有什么优点?
  19. linux之如何快速清空文件内容
  20. 【CSDN博客精品文章,佟强】深刻理解Java编程的7个例子

热门文章

  1. SAS 读取数据文件
  2. NOIP2007 count 统计数字
  3. [工具] 知网(CNKI)文献下载工具
  4. 只腐蚀毛刺 腐蚀算法_图像的腐蚀 膨胀及细化
  5. jeesite使用心得(二)
  6. ScrollView嵌套ViewPager,ViewPage动态设置高度,嵌套事件冲突——滑动冲突解决方法
  7. Android 自定义环形圆形显示统计数据z
  8. 腾讯地图 qq.map 设置鼠标样式
  9. C# JScript.Eval使用
  10. MS SQLSERVER中如何快速获取表的记录总数