其實我覺得我沒有很確定我在寫什麼(?!)
雖然是一題Hard, 差了一個判斷式真的差很多QQ
之一要檢查可能它長在後面
之二是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;
}
沒有留言:
張貼留言