题目来源:
leetcode题目,网址:2073. 买票需要的时间 - 力扣(LeetCode)
解题思路:
假设共有 n 个人,第 k 个人需要取 tickets[k] 张票,那么前 k-1 个人中的第 i 个人取票需要消耗 Math.min(tickets[i],tickets[k]) 秒,后 n-k 中的第 i 个人取票需要消耗 Math.min(tickets[i],tickets[k]-1) 秒,第 k 个人取票消耗时间 tickets[k] 之和即为所求。
遍历数据,根据其与 k 的位置关系计算并求和即可。
解题代码:
class Solution {
public int timeRequiredToBuy(int[] tickets, int k) {
int res=tickets[k];
int ticket=tickets[k];
int length=tickets.length;
for(int i=0;i<tickets.length;i++){
if(i<k){
res+=Math.min(tickets[i],ticket);
}else if(i>k){
res+=Math.min(tickets[i],ticket-1);
}
}
return res;
}
}
总结:
官方题解也是一样的思路。
instantaneously adv.瞬间