LeetCode 775. Global and Local Inversions(全局倒置與局部倒置 java)

數(shù)組 A 是 [0, 1, ..., N - 1] 的一種排列,N 是數(shù)組 A 的長度。全局倒置指的是 i,j 滿足 0 <= i < j < N 并且 A[i] > A[j] ,局部倒置指的是 i 滿足 0 <= i < N 并且 A[i] > A[i+1] 。

當數(shù)組 A 中全局倒置的數(shù)量等于局部倒置的數(shù)量時,返回 true 。

示例 :

輸入: A = [1,0,2]
輸出: true
解釋: 有 1 個全局倒置,和 1 個局部倒置。
示例 2:

輸出: false
解釋: 有 2 個全局倒置,和 1 個局部倒置。

注意:

  • A 是 [0, 1, ..., A.length - 1] 的一種排列
  • A 的長度在 [1, 5000]之間
    這個問題的時間限制已經減少了。

思路:

  1. 局部倒置屬于全局倒置
  2. 存在非局部倒置的全局倒置時返回false(即間隔一位元素大于)
  3. A是從0開始不間斷序列的一種排序
  4. 時間限制極短
  5. 記錄一種簡潔高效的寫法,傳送門

代碼:

    public boolean isIdealPermutation(int[] A) {
        for (int i = 0; i < A.length; i++) {
            if (A[i] - i > 1 || A[i] - i < -1)
                return false;
        }
        return true;
    }

總結:

  • 由于序列不間斷,當存在一個數(shù)偏離升序排序時兩單位的位置時,必然存在非局部倒置的全局倒置
  • 代碼復制,小腦瓜子能看出點端倪,寫出來就難咯
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,061評論 0 2
  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,927評論 0 33
  • 這一天,我們班的“鬼精靈”楊燦珠提出玩開飯店的游戲。我立即贊同。既然是楊燦珠的提議,我讓她當飯店老板,分配...
    吉林龍?zhí)?44高巖閱讀 377評論 0 1
  • 我的家鄉(xiāng),湛江吳川市,美食數(shù)不勝數(shù),先挑幾樣出來, 吳川月餅,爛鑊炒粉,吳川狗肉煲,牛腩粉,爆脆海蜇皮,...
    糖罐子tim閱讀 2,224評論 0 0
  • 作為父母,觀察了解孩子的心理發(fā)展,是父母的基本任務!如何幫助他們度過這一不穩(wěn)定時期,據(jù)本人作出的調研具體有13項內...
    湖南大羽閱讀 802評論 0 0

友情鏈接更多精彩內容