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;
    }
}
相关推荐
Lisonseekpan18 小时前
雪花算法(Snowflake)技术详解与实战应用
java·分布式·后端·算法
软件算法开发18 小时前
基于秃鹰搜索优化的LSTM深度学习网络模型(BES-LSTM)的一维时间序列预测算法matlab仿真
深度学习·算法·matlab·lstm·时间序列预测·秃鹰搜索优化·bes-lstm
2401_8772742419 小时前
太原理工大学2025数据结构-栈和队列
数据结构·c++·算法
资深web全栈开发19 小时前
LeetCode 1262. 可被三整除的最大和 - 解题思路与代码
算法·leetcode·职场和发展
保持低旋律节奏19 小时前
算法——冗余!哈希表、vector、string适配器的混合使用
数据结构·算法·散列表
weixin_4577600020 小时前
OpenCV 图像处理基础算法详解(一)
图像处理·opencv·算法
做怪小疯子20 小时前
LeetCode 热题 100——链表——相交链表
算法·leetcode·链表
while(努力):进步21 小时前
5G与物联网:连接万物的数字化未来
leetcode
立志成为大牛的小牛1 天前
数据结构——五十一、散列表的基本概念(王道408)
开发语言·数据结构·学习·程序人生·算法·散列表
Coovally AI模型快速验证1 天前
去噪扩散模型,根本不去噪?何恺明新论文回归「去噪」本质
人工智能·深度学习·算法·机器学习·计算机视觉·数据挖掘·回归