leetCode 41. First Missing Positive

来源:互联网 发布:ubuntu 开启ssh服务 编辑:程序博客网 时间:2024/05/01 13:16

41. First Missing Positive

Given an unsorted integer array, find the first missing positive integer.

For example,
Given [1,2,0] return 3,
and [3,4,-1,1] return 2.

Your algorithm should run in O(n) time and uses constant space.


这道题是查找第一个确实的正整数,利用数组的索引是一个非负的有序数列,把每个位置i存放数i+1。遍历一遍数组,如果num[i]!=i+1,就是第一个缺少的正整数。

    public int firstMissingPositive(int[] nums) {    for(int i=0;i<nums.length;i++){    while(nums[i]!=i+1){    if(nums[i]>=1 && nums[i]<=nums.length && nums[i]!=nums[nums[i]-1]){    int tmp=nums[i];    nums[i]=nums[nums[i]-1];    nums[tmp-1]=tmp;    }else{    break;    }    }    }    for(int i=0;i<nums.length;i++){    if(nums[i]!=i+1)    return i+1;    }    return nums.length+1;    }



1 0
原创粉丝点击