给定一个正整数 N,找到并返回 N 的二进制表示中两个连续的 1 之间的最长距离。
如果没有两个连续的 1,返回 0 。
class Solution{
public:
int binaryGap(
int n)
{
int ans =
0;
vector<
int>
a;
a.clear();
for(
int i =
0; i <=
30; i++
)
{
if((
1<<i) & N !=
0 ) a.push_back(i);
}
for(
int j =
0; j < a.size()-
1; j++
)
{
if(a[j+
1] - a[j] > ans) ans = a[i+
1] -
a[j];
}
return ans;
}
};
转载于:https://www.cnblogs.com/Shinered/p/9317121.html
相关资源:数据结构—成绩单生成器