检查给定的数组是否在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 婆婆高寿祝福语大全简短