作者:
oin1104 (是oin的說)
2024-07-13 13:44:50機掰
今天這題我之前用c寫過
我看到笑死
怎麼這麼雞巴又長又醜
邏輯跟現在差不多
給你們看一下
typedef struct {
int pos;
int hp;
char dir;
int num;
} robot;
int cmp (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int cmp2 (const void * a, const void * b)
{
return ( ((robot*)a)->num - ((robot*)b)->num );
}
int* survivedRobotsHealths(int* positions, int positionsSize, int* healths, int
healthsSize, char * directions, int* returnSize)
{
robot relaxing234[100000] = {};
for(int i = 0 ; i < positionsSize ; i ++)
{
relaxing234[i].pos = positions[i];
relaxing234[i].hp = healths[i];
relaxing234[i].dir = directions[i];
relaxing234[i].num = i;
}
qsort(relaxing234 , positionsSize , sizeof(robot) , cmp);
robot stack[100000] = {};
int top = 0;
for(int i = 0 ; i < positionsSize ; i++)
{
if(relaxing234[i].dir == 'R')
{
stack[top] = relaxing234[i];
top++;
}
else if(relaxing234[i].dir == 'L')
{
if(top == 0)
{
stack[top] = relaxing234[i];
top++;
}
else if((top != 0)&&(stack[top-1].dir == 'L'))
{
stack[top] = relaxing234[i];
top++;
}
else if((top != 0)&&(stack[top-1].dir == 'R'))
{
if(stack[top-1].hp > relaxing234[i].hp)
{
stack[top-1].hp