“强大的战略定力 坚定的决心意志”
啊我手中的键盘都敲不动了 明天能好起来吗
题目
https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray/
二、
public class Solution {
public int findUnsortedSubarray(int[] nums) {
int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
boolean flag = false;
for (int i = 1; i < nums.length; i++) {
if (nums[i] < nums[i - 1])
flag = true;
if (flag)
min = Math.min(min, nums[i]);
}
flag = false;
for (int i = nums.length - 2; i >= 0; i--) {
if (nums[i] > nums[i + 1])
flag = true;
if (flag)
max = Math.max(max, nums[i]);
}
int l, r;
for (l = 0; l < nums.length; l++) {
if (min < nums[l])
break;
}
for (r = nums.length - 1; r >= 0; r--) {
if (max > nums[r])
break;
}
return r - l < 0 ? 0 : r - l + 1;
}
}
一、
分析
代码
class Solution {
public int findUnsortedSubarray(int[] nums) {
int len=nums.length;
int min=nums[len-1];
int max=nums[0];
int begin=0,end=-1;
for(int i=0;i<len;i++){
if(nums[i]<max){
end=i;
}
else{
max=nums[i];
}
if(nums[len-i-1]>min){
begin=len-i-1;
}
else{
min=nums[len-i-1];
}
}
return end-begin+1;
}
}
复杂度
时间复杂度:O(n)。
空间复杂度:O(1)。使用了常数空间。