在以下场景中,我们可能会用到循环排序模式:
问题涉及给定范围的排序数组
问题需要找出排序数组中的缺失/重复/最小值
经典例题
268....., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。
「示例」:
输入: [3,0,1]
输出: 2
本题可以采用循环排序模式求解。...「示例」:
输入:
[4,3,2,7,8,2,3,1]
输出:
[2,3]
本题可以使用循环排序求解。...0
res = []
while start < len(nums): # 用for循环也可
num = nums[start]...「示例」:
输入: [1,2,0]
输出: 3
这道题也可以使用循环排序求解,思路与上一题基本一致:假定数组包含
,将数组中的数移到其对应的索引的位置,恢复后再遍历数组即可找到第一个缺失的正数。