[抄题]:

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. python生成随机字符串
  2. 一种可行的简单的Scene结构in cocos2d
  3. 飞桨第四节七日cv经典网络 2020.4.3
  4. java学习(59):static修饰内部类
  5. easyplayerpro 使用说明_EasyPlayerPro(Windows)流媒体播放器开发之ffmpeg log输出报错
  6. 迟到的 cocoapod 版本适配 之网利宝
  7. c语言单片机串口通讯,单片机C语言之串口通信协议
  8. WebRequest msdn整理
  9. 27. Minimize casting
  10. java 英语_Java常用英语汇总(更新升级版)
  11. 百度贴吧签到助手php,玩心太大,自己部署一个贴吧签到器
  12. 怎么把qlv格式转成mp4
  13. 订单系统新增订单接口负载测试性能问题及定位
  14. 改革40年致敬创业者:有梦想谁都了不起!
  15. deepin系统屏幕闪烁问题解决
  16. .fasta文件的相关处理
  17. ubuntu导入第三方库_1.Ubuntu目录与第三方库
  18. 制作android动态壁纸,使用视差滚动制作Android动态壁纸
  19. 免费电子书籍下载站点大全(转载)
  20. python动物重量排序_python动物重量排序_Python小白干货宝典:sorted()函数:列表元素排序...

热门文章

  1. Tomcat架构与原理
  2. 在laravel5.8中集成swoole组件----用协程实现的服务端和客户端(一)
  3. PhantomJS 一个隐形的浏览器
  4. 深度学习之Batch Normalization
  5. python中集合set,字典dict和列表list的区别以及用法
  6. Codeforces 552C Vanya and Scales(进制转换+思维)
  7. OI回忆录——一个过气OIer的制杖历程
  8. 代码视图与StoryBoard.Xib文件视图的跳转
  9. 注册和登录还有那个加密的密码
  10. a critical review of preetham skylight model 笔记