diff --git a/solution/2000-2099/2073.Time Needed to Buy Tickets/README.md b/solution/2000-2099/2073.Time Needed to Buy Tickets/README.md index a288ed07e4638..870ffd02ccc3e 100644 --- a/solution/2000-2099/2073.Time Needed to Buy Tickets/README.md +++ b/solution/2000-2099/2073.Time Needed to Buy Tickets/README.md @@ -91,6 +91,34 @@ class Solution { } ``` +### **TypeScript** + +```ts +function timeRequiredToBuy(tickets: number[], k: number): number { + const n = tickets.length; + let target = tickets[k] - 1; + let ans = 0; + // round1 + for (let i = 0; i < n; i++) { + let num = tickets[i]; + if (num <= target) { + ans += num; + tickets[i] = 0; + } else { + ans += target; + tickets[i] -= target; + } + } + + // round2 + for (let i = 0; i <= k; i++) { + let num = tickets[i]; + ans += (num > 0 ? 1: 0); + } + return ans; +}; +``` + ### **C++** ```cpp diff --git a/solution/2000-2099/2073.Time Needed to Buy Tickets/README_EN.md b/solution/2000-2099/2073.Time Needed to Buy Tickets/README_EN.md index e192dbbadb4c8..ea20fe45f4023 100644 --- a/solution/2000-2099/2073.Time Needed to Buy Tickets/README_EN.md +++ b/solution/2000-2099/2073.Time Needed to Buy Tickets/README_EN.md @@ -82,6 +82,34 @@ class Solution { } ``` +### **TypeScript** + +```ts +function timeRequiredToBuy(tickets: number[], k: number): number { + const n = tickets.length; + let target = tickets[k] - 1; + let ans = 0; + // round1 + for (let i = 0; i < n; i++) { + let num = tickets[i]; + if (num <= target) { + ans += num; + tickets[i] = 0; + } else { + ans += target; + tickets[i] -= target; + } + } + + // round2 + for (let i = 0; i <= k; i++) { + let num = tickets[i]; + ans += (num > 0 ? 1: 0); + } + return ans; +}; +``` + ### **C++** ```cpp diff --git a/solution/2000-2099/2073.Time Needed to Buy Tickets/Solution.ts b/solution/2000-2099/2073.Time Needed to Buy Tickets/Solution.ts new file mode 100644 index 0000000000000..900cfcc811aa6 --- /dev/null +++ b/solution/2000-2099/2073.Time Needed to Buy Tickets/Solution.ts @@ -0,0 +1,23 @@ +function timeRequiredToBuy(tickets: number[], k: number): number { + const n = tickets.length; + let target = tickets[k] - 1; + let ans = 0; + // round1 + for (let i = 0; i < n; i++) { + let num = tickets[i]; + if (num <= target) { + ans += num; + tickets[i] = 0; + } else { + ans += target; + tickets[i] -= target; + } + } + + // round2 + for (let i = 0; i <= k; i++) { + let num = tickets[i]; + ans += (num > 0 ? 1: 0); + } + return ans; +}; \ No newline at end of file