LeetCode题解:2073. 买票需要的时间,直接计算,JavaScript,详细注释

原题链接:
https://leetcode.cn/problems/time-needed-to-buy-tickets/

解题思路:

  1. 如果是k和他之前的人
    • 如果买票数量比k少,肯定全部买完,及tickets[i]
    • 如果买票数量比k大,最多只能买tickets[k]
  2. 如果是k之后的人
    • 如果买票数量比k少,只能买到tickets[i]
    • 如果买票数量比k大,最多只能买tickets[k] - 1
/**
 * @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和他之前的人
      // 如果买票数量比k少,肯定全部买完,及tickets[i]
      // 如果买票数量比k大,最多只能买tickets[k]张
      result += Math.min(tickets[i], tickets[k])
    } else {
      // 如果是k之后的人
      // 如果买票数量比k少,只能买到tickets[i]张
      // 如果买票数量比k大,最多只能买tickets[k] - 1张
      result += Math.min(tickets[i], tickets[k] - 1)
    }
  }

  return result
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容