Re: [閒聊] 每日LeetCode

作者: oin1104 (是oin的說)   2023-11-07 19:16:17
我終於搞完這題了
這應該是我第一個完成的normoal
原本想自己先試試看
直接暴力拆開來解
結果runtime error
我吐了
然後我聽我同學跟看動物園的那個
才改成這樣

我流淚了
int eliminateMaximum(int* dist, int distSize, int* speed, int speedSize)
{
int day =0;
int mon = 0;
int kill=0;
int daymap[100000] = {};
//天數的怪物
for(int o = 0 ; o < distSize ; o++)
{
daymap[(dist[o]-1) / speed[o]] ++;
}
while(kill != distSize)
{
kill ++;
mon = mon + daymap[day];
if(kill < mon )
{
return kill;
}
day++;
}
return kill;
}
這是原本的寫法
int eliminateMaximum(int* dist, int distSize, int* speed, int speedSize)
{
int i =0;
int kill=0;
int distnext[distSize] ;
//天數
for(int o = 0 ; o < distSize ; o++)
{
distnext[o] = (dist[o]-1) / speed[o];
}
while(1)
{
//殺光光就回傳
if(kill == distSize)
{
return kill;
}
i = 0;
//指定下一輪最靠近的
for(int t = 0 ; t < distSize ; t++)
{
if(distnext[t] < distnext[i])
{
i = t;
}
}
//沙怪物
dist[i] = -999999;
distnext[i] = 9999999;
kill++;
//怪物走路
for(int k = 0 ; k < distSize ; k++)
{
if(dist[k] != -999999)
{
dist[k] = dist[k] - speed[k];
}
}
//走道主堡了沒
for(int gg = 0 ; gg < distSize ; gg++)
{
if(dist[gg] != -999999 && dist[gg] <= 0)
{
return kill;
}
}
}
return kill;
}
我吐了
作者: JIWP (JIWP)   2023-11-07 19:17:00
大師 給我錢
作者: ZooseWu (N5)   2023-11-07 19:17:00
加油
作者: AquaCute (水色銅碲)   2023-11-07 19:18:00
恭喜
作者: SecondRun (雨夜琴聲)   2023-11-07 19:20:00
你很棒
作者: oin1104 (是oin的說)   2023-11-07 19:20:00
好爽喔
作者: DDFox (冒險者兼清潔工)   2023-11-07 19:22:00
你很棒

Links booklink

Contact Us: admin [ a t ] ucptt.com