581. Shortest Unsorted Continuous Subarray
来源:互联网 发布:电影《美国黑帮》知乎 编辑:程序博客网 时间:2024/05/22 05:16
题目:
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: 5Explanation: You need to sort [6, 4, 8, 10, 9] in ascending order to make the whole array sorted in ascending order.
Note:
- Then length of the input array is in range [1, 10,000].
- The input array may contain duplicates, so ascending order here means <=.
本题主要利用如下思路(简单直接):
step1:先利用C++ sort函数进行升序排序,维护两个变量first及end,并赋予初始值0,-1(防止数组本来就是升序有序的情况)
step2:从数组尾部遍历数组,利用end记录升序后数组与原先数组第一个不相同的值的下标
step3:从数组头部遍历数组,利用first记录升序后数组与原先数组第一个不相同的值的下标
step4:返回end-first+1
代码:
class Solution {public: int findUnsortedSubarray(vector<int>& nums) { vector<int> res = nums; sort(res.begin(),res.end()); int first=0,end=-1; for(int i = res.size()-1;i>=0;i--) { if(res[i]!=nums[i]) { end = i; break; } } for(int j = 0;j<=end;j++) { if(res[j]!=nums[j]) { first = j; break; } } return end-first+1; }};
阅读全文
1 0
- 581. Shortest Unsorted Continuous Subarray
- 581. Shortest Unsorted Continuous Subarray
- 581. Shortest Unsorted Continuous Subarray
- 581. Shortest Unsorted Continuous Subarray
- 581. Shortest Unsorted Continuous Subarray
- 581. Shortest Unsorted Continuous Subarray
- 581. Shortest Unsorted Continuous Subarray
- 581. Shortest Unsorted Continuous Subarray
- 581. Shortest Unsorted Continuous Subarray
- 581. Shortest Unsorted Continuous Subarray
- 581. Shortest Unsorted Continuous Subarray
- Shortest Unsorted Continuous Subarray
- Shortest Unsorted Continuous Subarray
- 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
- 03-1 javaScript的对象(1)
- 《JS高级程序设计》第6章读书笔记:对象继承(三)原型式继承和寄生式继承
- C++学习之路 day7
- SQL 优化
- 网页的文件名
- 581. Shortest Unsorted Continuous Subarray
- [Leetcode]_40 Combination Sum II
- CreateFile、ReadFile、WriteFile和fread、fwrite两种读写文件的方法
- 移动前端开发的一些简单分类!
- 【C++心路历程37】钓鱼(刷表法dp)
- Redis-数据结构-字典
- Java-剑指offer-正方体的三面和相等
- 如何判断是输入流还是输出流
- IOS UIScrollView用法总结