队列
【2073. 买票需要的时间 】
typedef struct{
int index;
int need;
}Q;
int timeRequiredToBuy(int* tickets, int ticketsSize, int k){
Q q[50000] , temp ;
int i;
int time = 0;
int front = 0 , rear = 0;
//存储票
for(i=0; i < ticketsSize ; ++i)
{
q[rear].index = i;
q[rear].need = tickets[i];
++rear;
}
//
while( front < rear )
{
temp = q[front++];
temp.need--;
++time;
//从第一个开始买票,买完时间+1;
if(temp.need)
{
q[rear++] = temp;
}
else
{
if(temp.index == k)
{
return time;
}
}
}
return time - 1;
}