给定一个正整数 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; } };