2024/08/22 每日一题
LeetCode 3133 数组最后一个元素的最小值
方法1:位运算
class Solution {
public long minEnd(int n, int x) {
int idx = 0; // 用于记录 x 二进制为 0 的下标
n--; // 第一个数就是 x
long ans = x;
while (n > 0) { // 取出 n 的每一位填充到 x 的 idx 处
while ((ans & (1L << idx)) != 0) idx++;
if ((n & 1) == 1) ans |= ((long) (n & 1) << idx);
n >>= 1; idx++;
}
return ans;
}
}