1887. Reduction Operations to Make the Array Elements Equal Medium
1/**
2 * [1887] Reduction Operations to Make the Array Elements Equal
3 *
4 * Given an integer array nums, your goal is to make all elements in nums equal. To complete one operation, follow these steps:
5 * <ol>
6 * Find the largest value in nums. Let its index be i (0-indexed) and its value be largest. If there are multiple elements with the largest value, pick the smallest i.
7 * Find the next largest value in nums strictly smaller than largest. Let its value be nextLargest.
8 * Reduce nums[i] to nextLargest.
9 * </ol>
10 * Return the number of operations to make all elements in nums equal.
11 *
12 * Example 1:
13 *
14 * Input: nums = [5,1,3]
15 * Output: 3
16 * Explanation: It takes 3 operations to make all elements in nums equal:
17 * 1. largest = 5 at index 0. nextLargest = 3. Reduce nums[0] to 3. nums = [<u>3</u>,1,3].
18 * 2. largest = 3 at index 0. nextLargest = 1. Reduce nums[0] to 1. nums = [<u>1</u>,1,3].
19 * 3. largest = 3 at index 2. nextLargest = 1. Reduce nums[2] to 1. nums = [1,1,<u>1</u>].
20 *
21 * Example 2:
22 *
23 * Input: nums = [1,1,1]
24 * Output: 0
25 * Explanation: All elements in nums are already equal.
26 *
27 * Example 3:
28 *
29 * Input: nums = [1,1,2,2,3]
30 * Output: 4
31 * Explanation: It takes 4 operations to make all elements in nums equal:
32 * 1. largest = 3 at index 4. nextLargest = 2. Reduce nums[4] to 2. nums = [1,1,2,2,<u>2</u>].
33 * 2. largest = 2 at index 2. nextLargest = 1. Reduce nums[2] to 1. nums = [1,1,<u>1</u>,2,2].
34 * 3. largest = 2 at index 3. nextLargest = 1. Reduce nums[3] to 1. nums = [1,1,1,<u>1</u>,2].
35 * 4. largest = 2 at index 4. nextLargest = 1. Reduce nums[4] to 1. nums = [1,1,1,1,<u>1</u>].
36 *
37 *
38 * Constraints:
39 *
40 * 1 <= nums.length <= 5 * 10^4
41 * 1 <= nums[i] <= 5 * 10^4
42 *
43 */
44pub struct Solution {}
45
46// problem: https://leetcode.com/problems/reduction-operations-to-make-the-array-elements-equal/
47// discuss: https://leetcode.com/problems/reduction-operations-to-make-the-array-elements-equal/discuss/?currentPage=1&orderBy=most_votes&query=
48
49// submission codes start here
50
51impl Solution {
52 pub fn reduction_operations(nums: Vec<i32>) -> i32 {
53 0
54 }
55}
56
57// submission codes end
58
59#[cfg(test)]
60mod tests {
61 use super::*;
62
63 #[test]
64 fn test_1887() {
65 }
66}
67
Back
© 2025 bowen.ge All Rights Reserved.