3766. Minimum Operations to Make Binary Palindrome Medium
1/**
2 * [3766] Minimum Operations to Make Binary Palindrome
3 *
4 * You are given an integer array nums.
5 * For each element nums[i], you may perform the following operations any number of times (including zero):
6 *
7 * Increase nums[i] by 1, or
8 * Decrease nums[i] by 1.
9 *
10 * A number is called a binary palindrome if its binary representation without leading zeros reads the same forward and backward.
11 * Your task is to return an integer array ans, where ans[i] represents the minimum number of operations required to convert nums[i] into a binary palindrome.
12 *
13 * <strong class="example">Example 1:
14 * <div class="example-block">
15 * Input: <span class="example-io">nums = [1,2,4]</span>
16 * Output: <span class="example-io">[0,1,1]</span>
17 * Explanation:
18 * One optimal set of operations:
19 * <table style="border: 1px solid black;">
20 * <thead>
21 * <tr>
22 * <th style="border: 1px solid black;">nums[i]</th>
23 * <th style="border: 1px solid black;">Binary(nums[i])</th>
24 * <th style="border: 1px solid black;">Nearest<br />
25 * Palindrome</th>
26 * <th style="border: 1px solid black;">Binary<br />
27 * (Palindrome)</th>
28 * <th style="border: 1px solid black;">Operations Required</th>
29 * <th style="border: 1px solid black;">ans[i]</th>
30 * </tr>
31 * </thead>
32 * <tbody>
33 * <tr>
34 * <td style="border: 1px solid black;">1</td>
35 * <td style="border: 1px solid black;">1</td>
36 * <td style="border: 1px solid black;">1</td>
37 * <td style="border: 1px solid black;">1</td>
38 * <td style="border: 1px solid black;">Already palindrome</td>
39 * <td style="border: 1px solid black;">0</td>
40 * </tr>
41 * <tr>
42 * <td style="border: 1px solid black;">2</td>
43 * <td style="border: 1px solid black;">10</td>
44 * <td style="border: 1px solid black;">3</td>
45 * <td style="border: 1px solid black;">11</td>
46 * <td style="border: 1px solid black;">Increase by 1</td>
47 * <td style="border: 1px solid black;">1</td>
48 * </tr>
49 * <tr>
50 * <td style="border: 1px solid black;">4</td>
51 * <td style="border: 1px solid black;">100</td>
52 * <td style="border: 1px solid black;">3</td>
53 * <td style="border: 1px solid black;">11</td>
54 * <td style="border: 1px solid black;">Decrease by 1</td>
55 * <td style="border: 1px solid black;">1</td>
56 * </tr>
57 * </tbody>
58 * </table>
59 * Thus, ans = [0, 1, 1].
60 * </div>
61 * <strong class="example">Example 2:
62 * <div class="example-block">
63 * Input: <span class="example-io">nums = [6,7,12]</span>
64 * Output: <span class="example-io">[1,0,3]</span>
65 * Explanation:
66 * One optimal set of operations:
67 * <table style="border: 1px solid black;">
68 * <thead>
69 * <tr>
70 * <th style="border: 1px solid black;">nums[i]</th>
71 * <th style="border: 1px solid black;">Binary(nums[i])</th>
72 * <th style="border: 1px solid black;">Nearest<br />
73 * Palindrome</th>
74 * <th style="border: 1px solid black;">Binary<br />
75 * (Palindrome)</th>
76 * <th style="border: 1px solid black;">Operations Required</th>
77 * <th style="border: 1px solid black;">ans[i]</th>
78 * </tr>
79 * </thead>
80 * <tbody>
81 * <tr>
82 * <td style="border: 1px solid black;">6</td>
83 * <td style="border: 1px solid black;">110</td>
84 * <td style="border: 1px solid black;">5</td>
85 * <td style="border: 1px solid black;">101</td>
86 * <td style="border: 1px solid black;">Decrease by 1</td>
87 * <td style="border: 1px solid black;">1</td>
88 * </tr>
89 * <tr>
90 * <td style="border: 1px solid black;">7</td>
91 * <td style="border: 1px solid black;">111</td>
92 * <td style="border: 1px solid black;">7</td>
93 * <td style="border: 1px solid black;">111</td>
94 * <td style="border: 1px solid black;">Already palindrome</td>
95 * <td style="border: 1px solid black;">0</td>
96 * </tr>
97 * <tr>
98 * <td style="border: 1px solid black;">12</td>
99 * <td style="border: 1px solid black;">1100</td>
100 * <td style="border: 1px solid black;">15</td>
101 * <td style="border: 1px solid black;">1111</td>
102 * <td style="border: 1px solid black;">Increase by 3</td>
103 * <td style="border: 1px solid black;">3</td>
104 * </tr>
105 * </tbody>
106 * </table>
107 * Thus, ans = [1, 0, 3].
108 * </div>
109 *
110 * Constraints:
111 *
112 * 1 <= nums.length <= 5000
113 * ^1 <= nums[i] <=^ 5000
114 *
115 */
116pub struct Solution {}
117
118// problem: https://leetcode.com/problems/minimum-operations-to-make-binary-palindrome/
119// discuss: https://leetcode.com/problems/minimum-operations-to-make-binary-palindrome/discuss/?currentPage=1&orderBy=most_votes&query=
120
121// submission codes start here
122
123impl Solution {
124 pub fn min_operations(nums: Vec<i32>) -> Vec<i32> {
125 vec![]
126 }
127}
128
129// submission codes end
130
131#[cfg(test)]
132mod tests {
133 use super::*;
134
135 #[test]
136 fn test_3766() {
137 }
138}
139Back
© 2026 bowen.ge All Rights Reserved.