题解 | 队列消数

队列消数

https://www.nowcoder.com/practice/48f6e451ff52440798067b77dc5ea95b?tpId=383&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj%3FquestionJobId%3D10%26subTabName%3Donline_coding_page

#include <queue>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param tickets int整型vector 
     * @param k int整型 
     * @return int整型
     */
    int timeRequiredToBuy(vector<int>& tickets, int k) {
        queue<int> p;
        tickets[k] +=1000;
        for(int i=0;i<tickets.size();i++)
        {
            p.push(tickets[i]);
        }
        int time = 0;
        while(!p.empty()){
            if(p.front()==1){
                time++;
                p.pop();
            }else if(p.front()!=1 && p.front()!=1001){
                int temp = p.front()-1;
                p.pop();
                p.push(temp);
                time++;
            }else if(p.front()==1001){
                time++;
                break;
            }
        }
        return time;
    }
};

处理数组的时候,直接给要标记的那项猛加1000即可,就能很精准的找到了

讨论里有热心哥们说了意义明确的完整题目,务必看一下弄清楚了再做

全部评论

相关推荐

Java转测开第一人:这种就是饼 把应届当廉价劳动力用完然后丢掉
你觉得今年秋招难吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务