我是直接用向量做的,因为向量也可以对队首和队尾进行操作,但我觉得队列用我这个思路应该也可以做

#include <queue>
#include <vector>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param tickets int整型vector 
     * @param k int整型 
     * @return int整型
     */
    int timeRequiredToBuy(vector<int>& tickets, int k) {
        // write code here
        int cnt=0;
    while(1){
         int a=tickets[0]-1;
        if(k>0){
           
            if(a==0){
                k--;
                cnt++;
                tickets.erase(tickets.begin());
            }else{
                tickets.push_back(a);
                tickets.erase(tickets.begin());
                k--;
                cnt++;
            }
            
        }else{
            if(a==0){
                //out
                
                cnt++;
                break;
            }else{
                k+=(tickets.size()-1);
                cnt++;
                tickets.push_back(a);
                tickets.erase(tickets.begin());
            }
        }
    }
    return cnt;
    }
    
};