检查给定的数组是否在Python中几乎排序(元素最多相距一个位置)
假设我们有一个称为nums的数字数组,其中所有元素都是唯一的。我们必须检查nums是否几乎已排序。众所周知,当数组中的任何元素出现在距其在数组中的原始位置最多1距离处时,数组几乎都将被排序。
因此,如果输入类似于nums=[10,30,20,40],则输出将为True,因为10放置在其原始位置,而所有其他元素距离其实际位置最多在一个位置。
示例
让我们看下面的实现以更好地理解-
def solve(nums):
i = 0
while i < len(nums) - 1:
if nums[i] > nums[i + 1]:
nums[i], nums[i + 1] = nums[i + 1], nums[i]
i += 1
i += 1
for i in range(len(nums) - 1):
if nums[i] > nums[i + 1]:
return False
return True
nums = [10, 30, 20, 40]
print(solve(nums))输入值
[10, 30, 20, 40]输出结果
True
热门推荐
10 感谢韩语老师祝福语简短
11 升职文案高级祝福语简短
12 花童结婚祝福语大全简短
13 向国庆送祝福语简短
14 什么寄语简短祝福语女生
15 客户回礼祝福语大全简短
16 女孩生日祝福语简短创意
17 家长回复节日祝福语简短
18 给外婆敬酒祝福语简短