191.位1的个数(与231.2的幂 核心一样)
int hammingWeight(uint32_t n)
{
int count = 0;
while (n)
{
n = n & (n - 1);//判断执行次数,就是1的个数
count++;
}
return count;
}
新思路:
231.2的幂
bool isPowerOfTwo(int n)
{
if (n > 0 && (n & (n - 1)) == 0)//是2的幂次方,必为正数
//注意优先级,要加()!!!
{
return true;
}
else
{
return false;
}
}
263.丑数
bool isUgly(int n)
{
if (n <= 0)//小于0,必不可能
{
return false;
}
int arr[] = { 2,3,5 };
for (int i = 0;i < 3;i++)
{
while (n % arr[i] == 0)
{
n /= arr[i];
}
}
if (n == 1)
{
return true;
}
else
{
return false;
}
}
🎯总结:学会新思路n&(n-1),要灵活使用。
☀️ 这次题目稍微有点难,但只有掌握好方法,则可以做的又快又好!!!
👊👊👊
继续刷题刷题。