3635. Earliest Finish Time for Land and Water Rides II Medium
1/**
2 * [3635] Earliest Finish Time for Land and Water Rides II
3 *
4 * <p data-end="143" data-start="53">You are given two categories of theme park attractions: <strong data-end="122" data-start="108">land rides and <strong data-end="142" data-start="127">water rides.
5 *
6 * <li data-end="163" data-start="147"><strong data-end="161" data-start="147">Land rides
7 *
8 * <li data-end="245" data-start="168"><code data-end="186" data-start="168">landStartTime[i] – the earliest time the i^th land ride can be boarded.
9 * <li data-end="306" data-start="250"><code data-end="267" data-start="250">landDuration[i] – how long the i^th land ride lasts.
10 *
11 *
12 * <strong data-end="325" data-start="310">Water rides
13 *
14 * <code data-end="351" data-start="332">waterStartTime[j] – the earliest time the j^th water ride can be boarded.
15 * <code data-end="434" data-start="416">waterDuration[j] – how long the j^th water ride lasts.
16 *
17 *
18 *
19 * <p data-end="569" data-start="476">A tourist must experience <strong data-end="517" data-start="502">exactly one ride from <strong data-end="536" data-start="528">each category, in <strong data-end="566" data-start="550">either order.
20 *
21 * <li data-end="641" data-start="573">A ride may be started at its opening time or <strong data-end="638" data-start="618">any later moment.
22 * <li data-end="715" data-start="644">If a ride is started at time <code data-end="676" data-start="673">t, it finishes at time <code data-end="712" data-start="698">t + duration.
23 * <li data-end="834" data-start="718">Immediately after finishing one ride the tourist may board the other (if it is already open) or wait until it opens.
24 *
25 * <p data-end="917" data-start="836">Return the <strong data-end="873" data-start="847">earliest possible time at which the tourist can finish both rides.
26 *
27 * <strong class="example">Example 1:
28 * <div class="example-block">
29 * Input: <span class="example-io">landStartTime = [2,8], landDuration = [4,1], waterStartTime = [6], waterDuration = [3]</span>
30 * Output: <span class="example-io">9</span>
31 * Explanation:
32 *
33 * <li data-end="181" data-start="145">Plan A (land ride 0 → water ride 0):
34 *
35 * <li data-end="272" data-start="186">Start land ride 0 at time <code data-end="234" data-start="212">landStartTime[0] = 2. Finish at <code data-end="271" data-start="246">2 + landDuration[0] = 6.
36 * <li data-end="392" data-start="277">Water ride 0 opens at time <code data-end="327" data-start="304">waterStartTime[0] = 6. Start immediately at <code data-end="353" data-start="350">6, finish at <code data-end="391" data-start="365">6 + waterDuration[0] = 9.
37 *
38 *
39 * <li data-end="432" data-start="396">Plan B (water ride 0 → land ride 1):
40 *
41 * <li data-end="526" data-start="437">Start water ride 0 at time <code data-end="487" data-start="464">waterStartTime[0] = 6. Finish at <code data-end="525" data-start="499">6 + waterDuration[0] = 9.
42 * <li data-end="632" data-start="531">Land ride 1 opens at <code data-end="574" data-start="552">landStartTime[1] = 8. Start at time <code data-end="593" data-start="590">9, finish at <code data-end="631" data-start="605">9 + landDuration[1] = 10.
43 *
44 *
45 * <li data-end="672" data-start="636">Plan C (land ride 1 → water ride 0):
46 *
47 * <li data-end="763" data-start="677">Start land ride 1 at time <code data-end="725" data-start="703">landStartTime[1] = 8. Finish at <code data-end="762" data-start="737">8 + landDuration[1] = 9.
48 * <li data-end="873" data-start="768">Water ride 0 opened at <code data-end="814" data-start="791">waterStartTime[0] = 6. Start at time <code data-end="833" data-start="830">9, finish at <code data-end="872" data-start="845">9 + waterDuration[0] = 12.
49 *
50 *
51 * <li data-end="913" data-start="877">Plan D (water ride 0 → land ride 0):
52 *
53 * <li data-end="1007" data-start="918">Start water ride 0 at time <code data-end="968" data-start="945">waterStartTime[0] = 6. Finish at <code data-end="1006" data-start="980">6 + waterDuration[0] = 9.
54 * <li data-end="1114" data-start="1012">Land ride 0 opened at <code data-end="1056" data-start="1034">landStartTime[0] = 2. Start at time <code data-end="1075" data-start="1072">9, finish at <code data-end="1113" data-start="1087">9 + landDuration[0] = 13.
55 *
56 *
57 *
58 * <p data-end="1161" data-is-last-node="" data-is-only-node="" data-start="1116">Plan A gives the earliest finish time of 9.
59 * </div>
60 * <strong class="example">Example 2:
61 * <div class="example-block">
62 * Input: <span class="example-io">landStartTime = [5], landDuration = [3], waterStartTime = [1], waterDuration = [10]</span>
63 * Output: <span class="example-io">14</span>
64 * Explanation:
65 * <ul data-end="1589" data-start="1086">
66 * <li data-end="1124" data-start="1088">Plan A (water ride 0 → land ride 0):
67 *
68 * <li data-end="1219" data-start="1129">Start water ride 0 at time <code data-end="1179" data-start="1156">waterStartTime[0] = 1. Finish at <code data-end="1218" data-start="1191">1 + waterDuration[0] = 11.
69 * <li data-end="1338" data-start="1224">Land ride 0 opened at <code data-end="1268" data-start="1246">landStartTime[0] = 5. Start immediately at <code data-end="1295" data-start="1291">11 and finish at <code data-end="1337" data-start="1310">11 + landDuration[0] = 14.
70 *
71 *
72 * <li data-end="1378" data-start="1342">Plan B (land ride 0 → water ride 0):
73 *
74 * <li data-end="1469" data-start="1383">Start land ride 0 at time <code data-end="1431" data-start="1409">landStartTime[0] = 5. Finish at <code data-end="1468" data-start="1443">5 + landDuration[0] = 8.
75 * <li data-end="1589" data-start="1474">Water ride 0 opened at <code data-end="1520" data-start="1497">waterStartTime[0] = 1. Start immediately at <code data-end="1546" data-start="1543">8 and finish at <code data-end="1588" data-start="1561">8 + waterDuration[0] = 18.
76 *
77 *
78 *
79 * <p data-end="1640" data-is-last-node="" data-is-only-node="" data-start="1591">Plan A provides the earliest finish time of 14.
80 * </div>
81 *
82 * Constraints:
83 *
84 * <li data-end="38" data-start="16"><code data-end="36" data-start="16">1 <= n, m <= 5 * 10^4
85 * <li data-end="93" data-start="41"><code data-end="91" data-start="41">landStartTime.length == landDuration.length == n
86 * <li data-end="150" data-start="96"><code data-end="148" data-start="96">waterStartTime.length == waterDuration.length == m
87 * <li data-end="237" data-start="153"><code data-end="235" data-start="153">1 <= landStartTime[i], landDuration[i], waterStartTime[j], waterDuration[j] <= 10^5
88 *
89 */
90pub struct Solution {}
91
92// problem: https://leetcode.com/problems/earliest-finish-time-for-land-and-water-rides-ii/
93// discuss: https://leetcode.com/problems/earliest-finish-time-for-land-and-water-rides-ii/discuss/?currentPage=1&orderBy=most_votes&query=
94
95// submission codes start here
96
97impl Solution {
98 pub fn earliest_finish_time(land_start_time: Vec<i32>, land_duration: Vec<i32>, water_start_time: Vec<i32>, water_duration: Vec<i32>) -> i32 {
99 0
100 }
101}
102
103// submission codes end
104
105#[cfg(test)]
106mod tests {
107 use super::*;
108
109 #[test]
110 fn test_3635() {
111 }
112}
113Back
© 2026 bowen.ge All Rights Reserved.