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 }
  • 相关阅读:
    暂存。2
    暂存。
    dom兼容性问题3 元素操作
    一个查看Access数据库密码的工具
    解除IIS配置节锁定
    解决cef中title不现实tooltip的问题
    创建.symlnk文件
    查询orcale运行的SQL语句记录
    跨域http头
    C#抓取天气数据
  • 原文地址:https://www.cnblogs.com/guxuanqing/p/9063310.html
Copyright © 2011-2022 走看看