检查给定的数组是否在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 生日开业蛋糕祝福语简短