Open chencl1986 opened 3 months ago
原题链接: https://leetcode.cn/problems/time-needed-to-buy-tickets/
解题思路:
tickets[k] > 0
tickets[k]
tickets
1
/** * @param {number[]} tickets * @param {number} k * @return {number} */ var timeRequiredToBuy = function(tickets, k) { let result = 0 // 存储结果 // 不断循环直到tickets[k]为0,表示购买到所需数量的票 while (tickets[k]) { // 每次循环tickets for (let i = 0; i < tickets.length; i++) { // 如果当前是第k个人,他只剩一次购票机会,购票之后就退出循环 if (i === k && tickets[k] === 1) { // 购票时间加1 result++ // 购票数量减1 tickets[k]-- break } // 如果tickets[i]大于0,表示还可购票 if (tickets[i]) { // 购票时间加1 result++ // 购票数量减1 tickets[i]-- } } } return result };
原题链接: https://leetcode.cn/problems/time-needed-to-buy-tickets/
解题思路:
tickets[k] > 0
,就可以不断排队购票tickets[k]
为0停止tickets
中的每个人购票次数减1,同时将购票时间加1tickets[k]
为1
,则进行最后一次购票,并返回结果