歡樂的題目XD 不過一開始比對錯了我到底在想什麼呢XD
一開始的寫法總是慢了一點點點兒~
int mostFrequent(int* nums, int numsSize, int key){
int *count = calloc (1000, sizeof(int));
int max = INT_MIN;
int ret = -1;
for (int i=0;i<numsSize-1; i++)
{
if (nums[i] == key)
{
count[nums[i+1]-1]++;
if (count[nums[i+1]-1] > max)
{
max = count[nums[i+1]-1];
ret = nums[i+1];
}
}
}
return ret;
}
加減改了一下index,應該有少運算幾次吧(?)XD
int mostFrequent(int* nums, int numsSize, int key){
int *count = calloc (1000, sizeof(int));
int max = INT_MIN;
int ret = -1;
for (int i=1;i<numsSize; i++)
{
if (nums[i-1] == key)
{
int tmp = ++count[nums[i]-1];
if (tmp > max)
{
max = tmp;
ret = nums[i];
}
}
}
return ret;
}
沒有留言:
張貼留言