C++
maihc1
这个作者很懒,什么都没留下…
展开
-
LeetCode每日一题-2021/06/23-二进制中1的个数
二进制中1的个数–位运算–C++思路:这道题求的是给定数字的二进制中1的个数,容易想到的一种解法是循环遍历整个数字的二进制最后一位,如果该数字是2的倍数,则说明是0,不用将结果+1,如果不是2的倍数,则说明是1,将结果+1,最后将数字右移一位,直到数字的所有二进制位全是0,即数字为0时结束循环。代码:class Solution {public: int hammingWeight(uint32_t n) { int cnt = 0; while( n !.原创 2021-06-23 13:22:38 · 63 阅读 · 0 评论 -
LeetCode每日一题-2021/05/31-4的幂
4的幂–位运算–C++同样是一道考察位运算的题,该题有多种解法,在这里列出两种:一种是使用四进制来求解,另一种是使用取模3来求解方法一:主要思路:要求一个数是不是4的幂,只需将这个数用4进制表示,看表示结果是不是**1000…**这种形式即可。如果是这种格式,说明该数是4的幂。如果不是这种格式,比如123,说明该数不是4的幂方法二:主要思路:一个数要想是4的幂,首先它必须得是2的幂。所以首先判断该数是否是2的幂,如果不是2的幂,肯定也是不会是4的幂。然后再判断是否是4的幂,有两种情况:1原创 2021-05-31 18:04:58 · 57 阅读 · 0 评论 -
LeetCode每日一题-2021/05/30-二的幂
二的幂思路:这道题还是比较简单的,首先分类讨论,如果一个数是负数或0,那么它肯定不是二的幂。如果一个数是正数,可以先列出它的二进制表示,如果二进制表示只有一个1,那么该数就是二的幂,如果二进制表示没有1或有多个1,则不是二的幂例如:8的二进制表示为1000,只有一个1,所以它是二的幂9的二进制表示为1001,有多个1,所以它不是二的幂代码:class Solution {public: bool isPowerOfTwo(int n) { if( n <=原创 2021-05-30 11:48:34 · 63 阅读 · 0 评论 -
LeetCode每日一题-2021/05/27-汉明距离
汉明距离–位运算–C++汉明距离汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。 对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。下面来看这道求汉明距离的题:看题很容易理解,汉明距离其实就是统计两个数的二进制表示有几位不同(也就是求其异或值有几位1),很容易就得到了结果。代码如下:class Solution {public: int hammingDi原创 2021-05-27 19:10:05 · 119 阅读 · 0 评论