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 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告