LeetCode | Find Missing Positive

来源:互联网 发布:淘宝袜子好评语100字 编辑:程序博客网 时间:2024/04/19 21:46

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.

找丢失的第一个正数…
好难…

桶排

但是这个和普通的桶排又有点区别,更倾向于技巧…

class Solution {public:    int firstMissingPositive(vector<int>& nums) {        int n=nums.size();        //进行桶排序        for(int i=0;i<n;i++){            while(nums[i]!=i+1){                if(nums[i]<=0 || nums[i]>n || nums[i]==nums[nums[i]-1])                break;                swap(nums[i],nums[nums[i]-1]);            }        }        for(int i=0;i<n;i++){            if(nums[i]!=i+1)            return i+1;        }        return n+1;    }};
0 0
原创粉丝点击