要找到缺失的第一个正数,就可以把数组范围内的 nums[i] 放到 nums[i]-1 的位置上去,比如 2 放到 1, 3 放到 2,那么最后交换好的数组从头到尾遍历的第一个 nums[i] != i+1 的位置即为缺失的第一个正数。因为这样做最多只产生 n 次 swap,所以最终时间复杂度仍然是 O(n)func firstMissingPositive(nums []int) int ...
要找到缺失的第一个正数,就可以把数组范围内的 nums[i] 放到 nums[i]-1 的位置上去,比如 2 放到 1, 3 放到 2,那么最后交换好的数组从头到尾遍历的第一个 nums[i] != i+1 的位置即为缺失的第一个正数。因为这样做最多只产生 n 次 swap,所以最终时间复杂度仍然是 O(n)func firstMissingPositive(nums []int) int ...