581. Shortest Unsorted Continuous Subarray
来源:互联网 发布:java开源oa系统源码 编辑:程序博客网 时间:2024/05/22 03:48
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 <=.
class Solution { public int findUnsortedSubarray(int[] nums) { int length =nums.length; boolean[] change = new boolean[length-1]; int first=-1,last=0; for (int i = 1; i < length; i++) { if(nums[i-1]<=nums[i]) change[i-1]=true; else { if (first==-1) first=i-1; change[i - 1] = false; last=i; } } int max=-1000000000; int min=1000000000; if(first==-1) first=0; for(int i=first;i<=last;i++){ if(nums[i]>max) max=nums[i]; if(nums[i]<min) min=nums[i]; } boolean left=true,right=true; while(left||right){ if(first>0) { if (nums[first - 1] > min) { first--; } else left = false; }else left=false; if(last<length-1){ if (nums[last + 1] < max) { last++; } else right = false; }else right=false; } if(last==first) return 0; return last-first+1; }}
阅读全文
0 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
- 棋盘上放棋子(任意两个棋子不相邻)
- LintCode 关于递归问题的总结
- 统计学习方法笔记:K近邻法
- MySql安装和配置详情
- IDEA之Maven搭建Spring4 SpringMVC4 Mybatis3(笔记记录篇)
- 581. Shortest Unsorted Continuous Subarray
- 嵌入式linux平台设备驱动(设备驱动模型)开发之linux内核中bus总线
- 第一个网络程序---hostent
- Python简单通信录程序
- 基础知识复习笔记 Day 1
- Two Sum
- 学习网站
- tarjan中的玄学
- windows下cuda7.5卸载方法