2659. Make Array Empty Hard

@problem@discussion
#Array#Binary Search#Greedy#Binary Indexed Tree#Segment Tree#Sorting#Ordered Set



1/**
2 * [2659] Make Array Empty
3 *
4 * You are given an integer array nums containing distinct numbers, and you can perform the following operations until the array is empty:
5 * 
6 * 	If the first element has the smallest value, remove it
7 * 	Otherwise, put the first element at the end of the array.
8 * 
9 * Return an integer denoting the number of operations it takes to make nums empty.
10 *  
11 * <strong class="example">Example 1:
12 * 
13 * Input: nums = [3,4,-1]
14 * Output: 5
15 * 
16 * <table style="border: 2px solid black; border-collapse: collapse;">
17 * 	<thead>
18 * 		<tr>
19 * 			<th style="border: 2px solid black; padding: 5px;">Operation</th>
20 * 			<th style="border: 2px solid black; padding: 5px;">Array</th>
21 * 		</tr>
22 * 	</thead>
23 * 	<tbody>
24 * 		<tr>
25 * 			<td style="border: 2px solid black; padding: 5px;">1</td>
26 * 			<td style="border: 2px solid black; padding: 5px;">[4, -1, 3]</td>
27 * 		</tr>
28 * 		<tr>
29 * 			<td style="border: 2px solid black; padding: 5px;">2</td>
30 * 			<td style="border: 2px solid black; padding: 5px;">[-1, 3, 4]</td>
31 * 		</tr>
32 * 		<tr>
33 * 			<td style="border: 2px solid black; padding: 5px;">3</td>
34 * 			<td style="border: 2px solid black; padding: 5px;">[3, 4]</td>
35 * 		</tr>
36 * 		<tr>
37 * 			<td style="border: 2px solid black; padding: 5px;">4</td>
38 * 			<td style="border: 2px solid black; padding: 5px;">[4]</td>
39 * 		</tr>
40 * 		<tr>
41 * 			<td style="border: 2px solid black; padding: 5px;">5</td>
42 * 			<td style="border: 2px solid black; padding: 5px;">[]</td>
43 * 		</tr>
44 * 	</tbody>
45 * </table>
46 * <strong class="example">Example 2:
47 * 
48 * Input: nums = [1,2,4,3]
49 * Output: 5
50 * 
51 * <table style="border: 2px solid black; border-collapse: collapse;">
52 * 	<thead>
53 * 		<tr>
54 * 			<th style="border: 2px solid black; padding: 5px;">Operation</th>
55 * 			<th style="border: 2px solid black; padding: 5px;">Array</th>
56 * 		</tr>
57 * 	</thead>
58 * 	<tbody>
59 * 		<tr>
60 * 			<td style="border: 2px solid black; padding: 5px;">1</td>
61 * 			<td style="border: 2px solid black; padding: 5px;">[2, 4, 3]</td>
62 * 		</tr>
63 * 		<tr>
64 * 			<td style="border: 2px solid black; padding: 5px;">2</td>
65 * 			<td style="border: 2px solid black; padding: 5px;">[4, 3]</td>
66 * 		</tr>
67 * 		<tr>
68 * 			<td style="border: 2px solid black; padding: 5px;">3</td>
69 * 			<td style="border: 2px solid black; padding: 5px;">[3, 4]</td>
70 * 		</tr>
71 * 		<tr>
72 * 			<td style="border: 2px solid black; padding: 5px;">4</td>
73 * 			<td style="border: 2px solid black; padding: 5px;">[4]</td>
74 * 		</tr>
75 * 		<tr>
76 * 			<td style="border: 2px solid black; padding: 5px;">5</td>
77 * 			<td style="border: 2px solid black; padding: 5px;">[]</td>
78 * 		</tr>
79 * 	</tbody>
80 * </table>
81 * <strong class="example">Example 3:
82 * 
83 * Input: nums = [1,2,3]
84 * Output: 3
85 * 
86 * <table style="border: 2px solid black; border-collapse: collapse;">
87 * 	<thead>
88 * 		<tr>
89 * 			<th style="border: 2px solid black; padding: 5px;">Operation</th>
90 * 			<th style="border: 2px solid black; padding: 5px;">Array</th>
91 * 		</tr>
92 * 	</thead>
93 * 	<tbody>
94 * 		<tr>
95 * 			<td style="border: 2px solid black; padding: 5px;">1</td>
96 * 			<td style="border: 2px solid black; padding: 5px;">[2, 3]</td>
97 * 		</tr>
98 * 		<tr>
99 * 			<td style="border: 2px solid black; padding: 5px;">2</td>
100 * 			<td style="border: 2px solid black; padding: 5px;">[3]</td>
101 * 		</tr>
102 * 		<tr>
103 * 			<td style="border: 2px solid black; padding: 5px;">3</td>
104 * 			<td style="border: 2px solid black; padding: 5px;">[]</td>
105 * 		</tr>
106 * 	</tbody>
107 * </table>
108 *  
109 * Constraints:
110 * 
111 * 	1 <= nums.length <= 10^5
112 * 	-10^9 <= nums[i] <= 10^9
113 * 	All values in nums are distinct.
114 * 
115 */
116pub struct Solution {}
117
118// problem: https://leetcode.com/problems/make-array-empty/
119// discuss: https://leetcode.com/problems/make-array-empty/discuss/?currentPage=1&orderBy=most_votes&query=
120
121// submission codes start here
122
123impl Solution {
124    pub fn count_operations_to_empty_array(nums: Vec<i32>) -> i64 {
125        
126    }
127}
128
129// submission codes end
130
131#[cfg(test)]
132mod tests {
133    use super::*;
134
135    #[test]
136    fn test_2659() {
137    }
138}
139


Back
© 2025 bowen.ge All Rights Reserved.