欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > leetcode 2073.买票需要的时间

leetcode 2073.买票需要的时间

2024/11/8 4:39:32 来源:https://blog.csdn.net/m0_73917165/article/details/142641616  浏览:    关键词:leetcode 2073.买票需要的时间

思路:用队列进行模拟。

这道题其实也就是一道模拟题而已,有一些小细节需要注意一下。

第一,就是我们的队列到底存的是什么东西,这里我存放的是数组的下标,用下标来表示这个下标的数。当然,我们在进行-1操作的时候是对于原数组进行操作的,而不能另外开一个内存进行加减。

第二:就是队列本身的问题,队列本身我们需要让它不为零,因为有可能出现全部都变成0而移走的可能性,所以需要判断一下。

还有就是标记数组,有点小题大用了,额外多开了一个数组长度的标志数组。方法比较笨。

最后返回的时候,我们是在判断完它减完之后退出队列,所以我们在返回的时候需要额外的+1.

class Solution {public int timeRequiredToBuy(int[] tickets, int k) {if(tickets.length<=0)return 0;Deque<Integer>q=new LinkedList<>();boolean []flag=new boolean[tickets.length];flag[k]=true;int cnt=0;for(int i=0;i<tickets.length;i++){q.addLast(i);}while(!q.isEmpty()){int tmp=q.getFirst();if(flag[tmp]&&tickets[tmp]-1==0){break;}tickets[tmp]--;cnt++;q.removeFirst();if(tickets[tmp]!=0){q.addLast(tmp);}}return cnt+1;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com