用 Python 检查全局和局部反转次数是否相同的程序

pythonserver side programmingprogramming

假设我们有一个名为 nums 的不同数字列表。此处全局反转是指索引 i < j 使得 nums[i] > nums[j]。局部反转是指索引 i 和 i + 1 使得 nums[i] > nums[i + 1]。我们必须检查全局反转的次数是否等于局部反转的次数。

因此,如果输入为 nums = [3, 2, 4],则输出将为 True,因为索引 0 和 1 都是全局反转和局部反转。

为了解决这个问题,我们将遵循以下步骤 −

  • l := size of nums
  • 对于范围为 0 到 l - 3 的 i,执行
    • 对于范围为 i + 2 到 l-1 的 j,执行
      • 如果 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

相关文章


有用资源