/**
* 2的幂,就是判断 K 大不大于0,并且数字的二进制中,最高位1且二进制中只有一个1
*/booltwoMi(int n){if(n<=0){returnfalse;}int count =0;while(n){
n = n&(n-1);
count++;}return count ==1;}
除自身以外数组的乘积
/**
* 除自身外所有数的乘积,从首尾开始遍历,左边累乘,右边累乘
*/
std::vector<int>getMulti(std::vector<int>&nums){int size = nums.size();
std::vector<int>res(size,1);int left =1;
int right =1;for(int i =0; i < size; i++){//先处理左边,跳过了nums[i]
res[i]*= left;
left *= nums[i];//处理右边
res[n-1-i]*= right;
right *= nums[n-1-i];}return res;}