LeetCode-581. Shortest Unsorted Continuous Subarray
来源:互联网 发布:ug编程如何加工t型槽 编辑:程序博客网 时间:2024/04/29 15:18
Description:
Example 1:
Note:
Solution 1(C++):
Solution 2(C++):
Solution 3(C++):
算法分析:
题目的意思就是要找到长度最短的子数列,这样的子数列满足条件,只要该数列排序完成,那么整个数列就排序完成,也就是说除了该数列以外的数列,也都是排序完成的。
解法一与解法二的思想都比较偷巧,既然整个数列,除了要找的子数列之外的其他数列已经排序好,那么,我们如果直接复制一个原数列,然后将复制的数列排序,与原数列比较,就能找到已经排序好的数列,那么原数列剩下的部分就是我们要找到的数列了,计算这个数列的长度就好了。
解法三的思路与前两个最大的不同就是不需要额外的存储空间,也就是说不需要额外复制一个数列。同样的,由于其他子数列是排好序的,那么我们从原数列的两端往中间遍历,先找到两端处的各递增数列。但是,如果我们仔细思考就会发现,我们要找的子数列,一旦排好序,就能直接无缝插入到其他子数列中,由于其他子数列是天然排序好的。那么子数列的最小值应该大于左边数列的最大值,子数列的最大值应该小于右边数列的最小值。那么这样就能完成子数列一旦排序好就能无缝插入。
所以,我们在第一步通过两端查询递增数列,直到左右两端第一个“逆序”元素对出现,那么这两个“逆序”元素对作为起终点的子数列需要重新排序。但是不能保证排序后能“无缝”与其他数列衔接。所以我们还需要寻找,当目标数列的最小值大于左边数列的最大值,并且目标数列的最大值小于左边数列的最小值,那么这个目标数列就是我们要找到的子数列。
程序分析:
我在这道题想尝试尽量简化代码,但还是颇有难度,只能不断做题,不断的学习。
阅读全文
0 0
- [LeetCode]581. Shortest Unsorted Continuous Subarray
- leetcode 581. Shortest Unsorted Continuous Subarray
- [LeetCode]581. Shortest Unsorted Continuous Subarray
- [leetcode]581. Shortest Unsorted Continuous Subarray
- [leetcode]581. Shortest Unsorted Continuous Subarray
- 【LeetCode】581. Shortest Unsorted Continuous Subarray
- LeetCode 581. Shortest Unsorted Continuous Subarray
- [leetcode]: 581. Shortest Unsorted Continuous Subarray
- [LeetCode] 581. Shortest Unsorted Continuous Subarray
- [LeetCode] 581. Shortest Unsorted Continuous Subarray
- LeetCode 581. Shortest Unsorted Continuous Subarray
- LeetCode: 581. Shortest Unsorted Continuous Subarray
- leetcode 581. Shortest Unsorted Continuous Subarray
- LeetCode 581. Shortest Unsorted Continuous Subarray
- 【LeetCode】581. Shortest Unsorted Continuous Subarray
- [LeetCode] 581. Shortest Unsorted Continuous Subarray
- leetcode 581. Shortest Unsorted Continuous Subarray
- LeetCode-581. Shortest Unsorted Continuous Subarray
- AI开发入门路线
- Leetcode算法学习日志-718 Maximum Length of Repeated Subarray
- 通配符匹配-LintCode
- 漏洞学习记录第一天:ffmpeg漏洞理解
- 3U VPX FMC+FPGA 处理板
- LeetCode-581. Shortest Unsorted Continuous Subarray
- json数据增加字段属性
- unity多线程2
- git(1) 本地仓库
- 使用keytool命令生成证书并导入java的cacerts证书库
- nginx虚拟主机配置
- hibernate jar包 核心包介绍
- Ghost高级教程——克隆备份
- git(2)远程仓库