题解 | 队列消数
队列消数
https://www.nowcoder.com/practice/48f6e451ff52440798067b77dc5ea95b
#include <queue>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param tickets int整型vector
* @param k int整型
* @return int整型
*/
int timeRequiredToBuy(vector<int>& tickets, int k) {
queue<int> q;
for (int s : tickets) q.push(s);
// write code here
int count = 0;
int inital = tickets[k];
// 关键确定什么时候tickets[k]需要减1,即当tickets[k]为队列首部元素时需要减1
while (inital >= 1) {
if (k == 0) {
inital--;
k = q.size() - 1;
} else {
k--;
}
if (q.front() > 1) {
q.push(--q.front());
q.pop();
} else {
q.pop();
}
count++;
}
return count;
}
};
查看5道真题和解析