![在这里插入图片描述](https://img-blog.csdnimg.cn/2701ec65ed8a47bf81f436b7f559f48e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2luZ2xlIOWQmw==,size_20,color_FFFFFF,t_70,g_se,x_16)
class Solution {
public:
vector<int> findClosedNumbers(int num) {
bitset<32> smaller(num);
bitset<32> bigger(num);
int s=-1;
for(int i=1;i<31;i++){
if(smaller[i]==1&&smaller[i-1]==0){
smaller.flip(i);
smaller.flip(i-1);
for(int left=0,right=i-2;left<right;){
while(left<right&&smaller[left]==0)left++;
while(left<right&&smaller[right]==1)right--;
smaller.flip(left);
smaller.flip(right);
}
s=(int)smaller.to_ulong();
break;
}
}
int b=-1;
for(int i=1;i<31;i++){
if(bigger[i]==0&&bigger[i-1]==1){
bigger.flip(i);
bigger.flip(i-1);
for(int left=0,right=i-2;left<right;){
while(left<right&&bigger[left]==1)left++;
while(left<right&&bigger[right]==0)right--;
bigger.flip(left);
bigger.flip(right);
}
b=(int)bigger.to_ulong();
break;
}
}
return{b,s};
}
};
![在这里插入图片描述](https://img-blog.csdnimg.cn/5830f3acc139488e9af498f1bbc88cef.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2luZ2xlIOWQmw==,size_20,color_FFFFFF,t_70,g_se,x_16)