Java実装LeetCode(二つのポインタを見つけるための検索からの2回)581連続したサブ最小注文アレー

581最短無秩序連続したサブアレイ

整数の配列を考えると、あなたは連続したサブ配列を探す必要があり、サブアレイの昇順にソートした場合、全体の配列は、昇順になります。

あなたは、サブ配列は、その長さの最短、お願い出力されるはずです。

例1:

入力が[2,6、4、8、10、9、15]
出力:5
説明:昇順で[6、4、8、10、9]にあなたが唯一の必要性は、テーブル全体を昇順に変更されます。
説明:

範囲の入力配列の長さ[1 10000]。
入力アレイはそう= <平均値を昇順、重複する要素を含んでいてもよいです。

class Solution {
     public int findUnsortedSubarray(int[] nums) {
        if(nums.length == 0 || nums.length == 1 || nums == null) {
            return 0;
        }
        int len = nums.length;
        int temp=0;
        int left  = -1, right = -1;
        int max = nums[0], min = nums[len - 1];
        for(int i = 1; i < len; i++) { 
            if (max > nums[i]) {
                right = i;
            } else {
                max = nums[i];
            }
            temp= len - i - 1;
            if (min < nums[temp]) {
                left = temp;
            } else {
                min = nums[temp];
            }
        }
        return right > left ? right - left + 1 : 0;
    }
 
}
リリース1658元の記事 ウォンの賞賛20000 + ビュー305万+

おすすめ

転載: blog.csdn.net/a1439775520/article/details/105166420