2022年10月24日 星期一

[41] First Missing Positive

其實我覺得我沒有很確定我在寫什麼(?!) 
雖然是一題Hard, 差了一個判斷式真的差很多QQ
覺得sad  XD~~~~~~~
之一要檢查可能它長在後面
之二是hash table 的size 是以可能的最多input數來設的, 這點其實是錯的RRRR  QQ
試想要是value 是超大值呢?根本找不到index 填進去吧.
並且真正理解的話, 它應該是numsSize 加上邊界即可
因為一旦有數字比它大, 表示一定有空下來的正整數
以上Orz

int firstMissingPositive(int* nums, int numsSize){
    int array[100000]={0,};
    int i;
    for (i=0; i<numsSize;i++)
    {
        if(nums[i]>0 && nums[i]<numsSize+1)
            array[nums[i]-1]++;
    }
    for (i=0; i<numsSize;i++)
        if(array[i]==0)
            return (i+1);
//    if(i==numsSize)
        return i+1;
}

沒有留言:

張貼留言