nums的长度为n,所以缺失的第一个正整数要么在[1,n]中,要么是n+1。将nums中的负数修改为n+1,然后遍历nums数组,当碰到的元素<=n时,表示此元素在[1,n]中出现过,将它标记为负数。再次遍历nums碰到的第一个非负数的下标表示没有出现过,否则未出现的元素为n+1。
class
展开全文
时间复杂度O(n),空间复杂度O(n)的做法:开辟一个新的数组arr,长度为nums.length+1,遍历nums数组,如果非负且值小于nums的长度,则把arr[nums[i]]置1。然后遍历辅助数组,找到下标不为1的第一个元素即可。
public class Solution {
pu
展开全文