2023年11月24日 星期五

[643] Maximum Average Subarray I

照著題目下去寫,果然又被誤導了  XD
原來可以最後再除一次就好了嗎?!
可是改完為什麼也沒有比較快XD

double findMaxAverage(int* nums, int numsSize, int k) {
int cur = 0;
for (int i=0;i<k;i++)
cur+=nums[i];
double max =(double)cur/k;
for (int i=k;i<numsSize;i++)
{
cur = cur - nums[i-k]+nums[i];
if ((double)cur/k > max)
max = (double) cur/k;
}
return max;
}

改成先把最大值找出來,再除以k 

double
findMaxAverage(int* nums, int numsSize, int k) {
int cur = 0;
for (int i=0;i<k;i++)
cur+=nums[i];
int max = cur;
for (int i=k;i<numsSize;i++)
{
cur = cur - nums[i-k]+nums[i];
if (cur> max)
max = cur;
}
return (double)max/k;
}

奇怪我不懂為什麼別人的把 加最後 跟 減最前 拆開來做會比較快Orz
再次的, 先降吧 XD

沒有留言:

張貼留言