247 words
1 minute
力扣每日一题 20260222

写在题解之前#

上次认真做题还是 2024 年沈阳区域赛,最近写力扣发现已经不会写 mid 了,准备开个新坑更 每日一题hot100 也算对自己复建的一个督促,主播是比较推崇费曼学习法的,学完之后做一个输出会让自己理解更透彻记得也更扎实,同时也给自己的学生时期留下一点痕迹,希望能和大家一起进步。

868. 二进制间距#

考虑到只看相邻的 11 ,可以把 nn 的二进制从低位到高位遍历,记一下 11 的位置,遍历过的位直接扔了就行,等遍历到下一个 11 的时候减一下上一个 11 的位置就中。

代码:

class Solution {
public:
int binaryGap(int n) {
int pos = -1, mx = 0, cnt = 0;
while(n) {
if (n & 1) {
if (pos != -1) mx = max(cnt - pos, mx);
pos = cnt;
}
cnt++;
n >>= 1;
}
return mx;
}
};
力扣每日一题 20260222
https://fuwari.vercel.app/posts/leetcode_daily/0222/
Author
P19E99
Published at
2026-02-22
License
CC BY-NC-SA 4.0