思路:
- 输入的数据为十进制,先将其转为二进制倒序数组(倒序还是正序都不影响)
- 再找数组中相邻1最大的距离
class Solution {
public:
int number[30];
int length = 0;
void change(int num){
while (num / 2) {
number[length] = num % 2;
length++;
num = num / 2;
}
number[length] = num;
length++;
}
int binaryGap(int n) {
change(n);
int d=0;
for(int i=length-1;i>=0;i--){
if(number[i]==1){
int j=i-1;
for(;j>=0;j--){
if(number[j]==1){
if((i-j)>d){
d=i-j;
}
break;
}
}
i=j+1;
}
}
return d;
}
};
···
版权声明:本文为m0_52229137原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。