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
- 如果 nums[i] > nums[j],则:
- 对于 j 从 i + 2 到 l-1,执行:
- 返回 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
广告