https://leetcode.cn/problems/first-missing-positive/?envType=study-plan-v2&envId=top-100-liked
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。
请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。
n = len(nums) 暴力解就直接排序,然后扫一遍1到n哪个数第一次未出现,都出现就是n+1,得出结果,但是排序复杂度最好O(logn)
需要把数组整理成比较有序的状态,nums[i] == i + 1(i从0开始),然后扫一遍
遍历一边,遇到没有在正确位置上(nums[i] == i + 1)就和正确位置(nums[i])交换,如果数字超出1到n就跳过,但是如果遇到有重复数字(nums[i] == nums[nums[i] - 1])的情况,也要跳过
