2073. Time Needed to Buy Tickets LeetCode Solution
In this guide, you will get 2073. Time Needed to Buy Tickets LeetCode Solution with the best time and space complexity. The solution to Time Needed to Buy Tickets problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Time Needed to Buy Tickets solution in C++
- Time Needed to Buy Tickets solution in Java
- Time Needed to Buy Tickets solution in Python
- Additional Resources

Problem Statement of Time Needed to Buy Tickets
There are n people in a line queuing to buy tickets, where the 0th person is at the front of the line and the (n – 1)th person is at the back of the line.
You are given a 0-indexed integer array tickets of length n where the number of tickets that the ith person would like to buy is tickets[i].
Each person takes exactly 1 second to buy a ticket. A person can only buy 1 ticket at a time and has to go back to the end of the line (which happens instantaneously) in order to buy more tickets. If a person does not have any tickets left to buy, the person will leave the line.
Return the time taken for the person initially at position k (0-indexed) to finish buying tickets.
Example 1:
Input: tickets = [2,3,2], k = 2
Output: 6
Explanation:
The queue starts as [2,3,2], where the kth person is underlined.
After the person at the front has bought a ticket, the queue becomes [3,2,1] at 1 second.
Continuing this process, the queue becomes [2,1,2] at 2 seconds.
Continuing this process, the queue becomes [1,2,1] at 3 seconds.
Continuing this process, the queue becomes [2,1] at 4 seconds. Note: the person at the front left the queue.
Continuing this process, the queue becomes [1,1] at 5 seconds.
Continuing this process, the queue becomes [1] at 6 seconds. The kth person has bought all their tickets, so return 6.
Example 2:
Input: tickets = [5,1,1,1], k = 0
Output: 8
Explanation:
The queue starts as [5,1,1,1], where the kth person is underlined.
After the person at the front has bought a ticket, the queue becomes [1,1,1,4] at 1 second.
Continuing this process for 3 seconds, the queue becomes [4] at 4 seconds.
Continuing this process for 4 seconds, the queue becomes [] at 8 seconds. The kth person has bought all their tickets, so return 8.
Constraints:
n == tickets.length
1 <= n <= 100
1 <= tickets[i] <= 100
0 <= k < n
Complexity Analysis
- Time Complexity: O(n)
- Space Complexity: O(1)
2073. Time Needed to Buy Tickets LeetCode Solution in C++
class Solution {
public:
int timeRequiredToBuy(vector<int>& tickets, int k) {
int ans = 0;
for (int i = 0; i < tickets.size(); ++i)
if (i <= k)
ans += min(tickets[i], tickets[k]);
else
ans += min(tickets[i], tickets[k] - 1);
return ans;
}
};
/* code provided by PROGIEZ */
2073. Time Needed to Buy Tickets LeetCode Solution in Java
class Solution {
public int timeRequiredToBuy(int[] tickets, int k) {
int ans = 0;
for (int i = 0; i < tickets.length; ++i)
if (i <= k)
ans += Math.min(tickets[i], tickets[k]);
else
ans += Math.min(tickets[i], tickets[k] - 1);
return ans;
}
}
// code provided by PROGIEZ
2073. Time Needed to Buy Tickets LeetCode Solution in Python
class Solution:
def timeRequiredToBuy(self, tickets: list[int], k: int) -> int:
ans = 0
for i, ticket in enumerate(tickets):
if i <= k:
ans += min(ticket, tickets[k])
else:
ans += min(ticket, tickets[k] - 1)
return ans
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.