原題鏈接:
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
};