Python 程式檢查全域性反轉和區域性反轉的數量是否相同


假設我們有一個名為 nums 的不同數字列表。這裡全域性反轉是指存在索引 i < j 使得 nums[i] > nums[j]。區域性反轉是指存在索引 i 和 i + 1 使得 nums[i] > nums[i + 1]。我們必須檢查全域性反轉的數量是否等於區域性反轉的數量。

因此,如果輸入類似於 nums = [3, 2, 4],則輸出將為 True,因為索引 0 和 1 都是全域性和區域性反轉。

為了解決這個問題,我們將遵循以下步驟:

  • l := nums 的大小
  • 對於 i 從 0 到 l - 3,執行:
    • 對於 j 從 i + 2 到 l-1,執行:
      • 如果 nums[i] > nums[j],則:
        • 返回 False
  • 返回 True

讓我們看看以下實現以更好地理解:

示例

 現場演示

class Solution:
   def solve(self, nums):
      l = len(nums)
      for i in range(l - 2):
         for j in range(i + 2, l):
            if nums[i] > nums[j]:
               return False
      return True
ob = Solution()
nums = [3, 2, 4]
print(ob.solve(nums))

輸入

[3, 2, 4]

輸出

True

更新於: 2020-11-19

108 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.