zoukankan      html  css  js  c++  java
  • First Missing Positive

    41. First Missing Positive

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

    Example 1:

    Input: [1,2,0]
    Output: 3
    

    Example 2:

    Input: [3,4,-1,1]
    Output: 2
    

    Example 3:

    Input: [7,8,9,11,12]
    Output: 1
    

    Note:

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

    解题思路:

    第一步:将数组中大于0的整数做一个hash映射,同时获取最大值ARRMAX。

    第二步:从1到ARRMAX遍历hash表,找到第一个为0的终止,返回最后查找索引值即可。

     1 #define HASHNUM 100000
     2 
     3 int firstMissingPositive(int* nums, int numsSize)
     4 {
     5     int numsMax = 0;
     6     int hash[HASHNUM] = {0};
     7     // hash and seek for array max num.
     8     for(int idx = 0; idx < numsSize; ++idx)
     9     {
    10         if(nums[idx] <= 0 ) continue;
    11         else
    12         {
    13             hash[nums[idx]] = 1;
    14             if(numsMax < nums[idx])
    15             {
    16                 numsMax = nums[idx];
    17             }
    18         }
    19     }
    20 
    21     // judge for missing
    22     int retIdx = 1;
    23     for(retIdx = 1; retIdx <= numsMax; ++retIdx)
    24     {
    25         if(hash[retIdx] == 0)
    26         {
    27             break;
    28         }
    29     }
    30 
    31     return retIdx;
    32 }
  • 相关阅读:
    团队博客(21)
    团队博客(20)
    站立会议报告(14)
    站立会议报告(13)
    软件工程(2018)第二次团队作业
    团队作业(一)
    结对第二次作业
    结对编程第一次作业
    软件工程第三次个人作业
    第二次作业软件工程
  • 原文地址:https://www.cnblogs.com/guxuanqing/p/9063310.html
Copyright © 2011-2022 走看看