3633. Earliest Finish Time for Land and Water Rides I Easy

@problem@discussion
#Array#Two Pointers#Binary Search#Greedy#Sorting



1/**
2 * [3633] Earliest Finish Time for Land and Water Rides I
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] &ndash; 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] &ndash; 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] &ndash; the earliest time the j^th water ride can be boarded.
15 * 		<code data-end="434" data-start="416">waterDuration[j] &ndash; 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 &rarr; 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 &rarr; 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 &rarr; 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 &rarr; 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 &rarr; 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 &rarr; 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 <= 100
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] <= 1000
88 * 
89 */
90pub struct Solution {}
91
92// problem: https://leetcode.com/problems/earliest-finish-time-for-land-and-water-rides-i/
93// discuss: https://leetcode.com/problems/earliest-finish-time-for-land-and-water-rides-i/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_3633() {
111    }
112}
113

Back
© 2026 bowen.ge All Rights Reserved.