中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

LeetCodeHOT100——581.最短無序連續子數組-創新互聯

題目

給你一個整數數組 nums ,你需要找出一個 連續子數組 ,如果對這個子數組進行升序排序,那么整個數組都會變為升序排序。

站在用戶的角度思考問題,與客戶深入溝通,找到桐柏網站設計與桐柏網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都網站設計、網站制作、外貿營銷網站建設、企業官網、英文網站、手機端網站、網站推廣、主機域名、網絡空間、企業郵箱。業務覆蓋桐柏地區。

請你找出符合題意的 最短 子數組,并輸出它的長度。

在這里插入圖片描述

思路

方法一:雙指針 + 排序

最終目的是讓整個數組有序,那么可以先將數組拷貝一份進行排序,然后使用兩個指針ij分別找到左右兩端第一個不同的地方,那么[i,j]這一區間即是答案

在這里插入圖片描述
java代碼如下:

class Solution {public int findUnsortedSubarray(int[] nums) {int n = nums.length;
        int[] arr = nums.clone();//java中的clone對于一維數組是深拷貝,重新分配空間,并將元素復制過去,對clone后的數組進行修改不會影響源數組。但是對二維數組是淺拷貝,復制的是引用,實際上指向的是同一個地址,對拷貝的二維數組修改或者排序都會影響原二維數組
        Arrays.sort(arr);
        int i = 0, j = n - 1;
        while (i<= j && nums[i] == arr[i]) i++;
        while (i<= j && nums[j] == arr[j]) j--;
        return j - i + 1;
    }
}

方法二:雙指針 + 線性掃描(一次遍歷)

將整個數組分成三段處理,一次遍歷

正常排序(1 2 3 4 5): 左邊所有元素的大值(2)<= 每個元素(例如3)<= 右邊所有元素的最小值(4)

求解: 2 6 8 10 4 9 15
其中:
從左到右 9是最后一個小于 (左邊所有元素大值)的
從右到左 6是最后一個大于 (右邊所有元素最小值)的

故解為求:

  • 從左到右遍歷, 記錄當前遍歷數的大值, 最后一個小于大值的即 需要倒置數組的右邊邊界索引
  • 從右到左遍歷, 記錄當前遍歷數的最小值, 最后一個大于最小值的即 需要倒置數組的左邊邊界索引

java代碼如下(算法有點晦澀難懂,建議跟著例子在紙上走一遍):

class Solution{public int findUnsortedSubarray(int[] nums) {int length = nums.length;
        int leftDiff = -1;
        int rightDiff = -1;
        //大值是順序遍歷使用的(求需排序數組的右邊邊界索引rightDiff), 也可以取Integer.MIN_VALUE
        int max = nums[0];
        //最小值是倒序遍歷使用的(求需排序數組的左邊邊界索引leftDiff), 也可以取Integer.MAX_VALUE
        int min = nums[length - 1];
        for (int i = 0; i< length; i++) {//順序執行, 判斷 當前值是否小于 已遍歷的大值, 是的話屬于需排序的數組元素, 替換rightDiff; 否就更新大值
            if (nums[i]< max){rightDiff = i;
            } else {max = nums[i];
            }
            //倒序執行, 判斷 當前值是否大于 已遍歷的最小值, 是的話屬于需排序的數組元素, 替換leftDiff; 否就更新最小值
            int index = length - 1 - i;
            if (nums[index] >min){leftDiff = index;
            } else {min = nums[index];
            }
        }
        return leftDiff != -1 ? rightDiff - leftDiff + 1 : 0;
    }
}

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

網站題目:LeetCodeHOT100——581.最短無序連續子數組-創新互聯
瀏覽地址:http://www.2m8n56k.cn/article16/gjpgg.html

成都網站建設公司_創新互聯,為您提供品牌網站制作、面包屑導航、電子商務、網站收錄網站策劃、微信小程序

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管
主站蜘蛛池模板: 日本在线观看免费看片 | 国产高清成人mv在线观看 | 亚洲国产欧美日韩第一香蕉 | 国产精品久久久久9999小说 | 国产99视频精品免视看7 | 欧美日韩亚洲综合久久久 | 麻豆69堂免费视频 | 日韩欧美一级毛片在线 | 国产一区自拍视频 | 性欧美高清极品xx | 97视频精品 | 午夜剧场福利社 | 国产一级做a爱片久久毛片a | 成人午夜看片在线观看 | 港台三级在线观看 | 国产精品久久久久久久网站 | 久草在线视频中文 | 中文字幕一二区 | 欧美成人免费高清网站 | 日本高清视频一区二区 | 草久视频在线观看 | 97久久精品国产精品青草 | 美女黄频免费观看 | 精品综合久久久久久蜜月 | 欧美色大成网站www永久男同 | 中文字幕在线观看日韩 | 久久国产亚洲欧美日韩精品 | 国产younv真实 | 一级毛片在线 | 欧美视频一区二区三区 | 日本一区二区三区不卡视频中文字幕 | 亚洲精品国产综合一线久久 | 免费一级网站 | 欧美中文一区 | 97免费在线观看视频 | 国产欧美日本在线 | 国产欧美一区二区三区在线 | 国产精品亚洲一区在线播放 | 日韩一区国产二区欧美三区 | 亚洲国产老鸭窝一区二区三区 | 国产三级精品三级国产 |