2659. Make Array Empty Hard
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.