原題鏈接:
https://leetcode.cn/problems/time-needed-to-buy-tickets/
解題思路:
- 如果是k和他之前的人
- 如果買票數(shù)量比k少,肯定全部買完,及
tickets[i] - 如果買票數(shù)量比k大,最多只能買
tickets[k]張
- 如果買票數(shù)量比k少,肯定全部買完,及
- 如果是k之后的人
- 如果買票數(shù)量比k少,只能買到
tickets[i]張 - 如果買票數(shù)量比k大,最多只能買
tickets[k] - 1張
- 如果買票數(shù)量比k少,只能買到
/**
* @param {number[]} tickets
* @param {number} k
* @return {number}
*/
var timeRequiredToBuy = function(tickets, k) {
let result = 0 // 存儲購票所需時間
for (let i = 0; i < tickets.length; i++) {
if (i <= k) {
// 如果是k和他之前的人
// 如果買票數(shù)量比k少,肯定全部買完,及tickets[i]
// 如果買票數(shù)量比k大,最多只能買tickets[k]張
result += Math.min(tickets[i], tickets[k])
} else {
// 如果是k之后的人
// 如果買票數(shù)量比k少,只能買到tickets[i]張
// 如果買票數(shù)量比k大,最多只能買tickets[k] - 1張
result += Math.min(tickets[i], tickets[k] - 1)
}
}
return result
};