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.

分析

这题是hard,但是感觉并不是很难啊。首先使用一个数组记录每个正整数是否出现过。然后从小到大检查该数组,输出第一个未出现的数字即可。

实现

class Solution {
public:
    int firstMissingPositive(vector& nums) {
        if(nums.empty()) return 1;
        bool flag[nums.size()] = {false};
        for(int i=0; i0 && nums[i]

思考

在做题的过程中发现,使用auto比使用int型下标来遍历vector要慢。所以也许使用的时候要多注意。

你可能感兴趣的:(41. First Missing Positive)