我是直接用向量做的,因为向量也可以对队首和队尾进行操作,但我觉得队列用我这个思路应该也可以做
#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; } };