
位运算
大章鱼(张文哲
你所做的别只停留在 还行
展开
-
子集
给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。说明:解集不能包含重复的子集。原题示例:输入: nums = [1,2,3]输出:[ [3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]原题示例:输入: nums ...原创 2019-09-05 20:17:37 · 409 阅读 · 0 评论 -
找不同
给定两个字符串 s 和 t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。原题示例:输入:s = "abcd"t = "abcde"输出:e解释:'e' 是那个被添加的字母。思路分析:大体上的思路有点像只出现一次的数字,将字母看成数字,两个数组相当于重复数字分成两边一样,异或一下就OK啦!!...原创 2019-09-06 07:17:13 · 472 阅读 · 4 评论 -
二进制手表
二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。例如,上面的二进制手表读取 “3:25”。给定一个非负整数 n代表当前 LED 亮着的数量,返回所有可能的时间。原题案例:输入: n = 1返回: ["1:00", "2:00", "4:00", "8:00", "...原创 2019-09-06 07:24:35 · 290 阅读 · 0 评论 -
数字转换十六进制数
给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用补码运算方法。原题注意:十六进制中所有字母(a-f)都必须是小写。十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符'0'来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。给定的数确保在32位有符号整数范围内。不能使用任何由库提供的将数字直接转换或格式化为十六进...原创 2019-09-06 07:35:53 · 1532 阅读 · 0 评论 -
汉明距离
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。原题注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。思路分析:理解题意了就...原创 2019-09-06 07:40:14 · 209 阅读 · 0 评论 -
数字的补数
给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。原题注意:给定的整数保证在32位带符号整数的范围内。你可以假定二进制数不包含前导零位。示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。...原创 2019-09-06 07:46:16 · 259 阅读 · 0 评论 -
交替位二进制数字
给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。原题示例 1:输入: 5输出: True解释:5的二进制数是: 101示例 2:输入: 7输出: False解释:7的二进制数是: 111示例3:输入: 11输出: False解释:11的二进制数是: 1011思路分析:既然是交替位数字,那么将其与(...原创 2019-09-06 07:53:42 · 289 阅读 · 0 评论 -
二进制表示中质数个计算置位
给定两个整数L和R,找到闭区间[L, R]范围内,计算置位位数为质数的整数个数。(注意,计算置位代表二进制表示中1的个数。例如21的二进制表示10101有 3 个计算置位。还有,1 不是质数。)原题示例 1:输入: L = 6, R = 10输出: 4解释:6 -> 110 (2 个计算置位,2 是质数)7 -> 111 (3 个计算置位,3...原创 2019-09-06 08:04:48 · 488 阅读 · 0 评论 -
字母大小写全排列
给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。原题示例:输入: S = "a1b2"输出: ["a1b2", "a1B2", "A1b2", "A1B2"]输入: S = "3z4"输出: ["3z4", "3Z4"]输入: S = "12345"输出: ["12345"]注意:S的长度不超...原创 2019-09-06 08:12:38 · 771 阅读 · 0 评论 -
汉明距离总和
两个整数的汉明距离 指的是这两个数字的二进制数对应位不同的数量。计算一个数组中,任意两个数之间汉明距离的总和。原题示例:输入: 4, 14, 2输出: 6解释: 在二进制表示中,4表示为0100,14表示为1110,2表示为0010。(这样表示是为了体现后四位之间关系)所以答案为:HammingDistance(4, 14) + HammingDistance(4, ...原创 2019-09-07 07:10:42 · 283 阅读 · 0 评论 -
4的幂
给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4的幂次方。原题示例 1:输入: 16输出: true示例 2:输入: 5输出: false思路分析:(1)直接暴力解决:循环除余4,看最后是否得0;(2)数学方法:对于num,我们可以先取log4(num)的整,然后再看四次方之后是否与原数相等(3)对于是4的幂的元素,前提肯定是2的幂...原创 2019-09-06 07:10:53 · 263 阅读 · 0 评论 -
比特位计数
给定一个非负整数num。对于0 ≤ i ≤ num 范围中的每个数字i,计算其二进制数中的 1 的数目并将它们作为数组返回。原题示例 1:输入: 2输出: [0,1,1]示例2:输入: 5输出: [0,1,1,2,1,2]思路分析:大致上就是位1的个数的思想,暴力解决就好。class Solution { public: vector&...原创 2019-09-06 06:52:46 · 154 阅读 · 0 评论 -
只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。原题示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4思路:由于不知道数组元素的大小,所以之前想的开个超级大的数组标记然后遍历无法实现。。。。。那不行,怎么办。。。。。可以这么想:(1)我可以遍历数组,开个set,然...原创 2019-09-05 20:36:25 · 167 阅读 · 0 评论 -
只出现一次的数字 II
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。原题示例 1:输入: [2,2,3,2]输出: 3示例2:输入: [0,1,0,1,0,1,99]输出: 99思路分析:又又又又又来搞事情了。。。相对于之前的只出现一次的数字一文中,还是原来的第一条思路,但是这次开的是一个map,所以就是简单的遍历加标记,...原创 2019-09-05 20:55:20 · 202 阅读 · 0 评论 -
求众数
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。原题示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2思路分析:(1)总所周知,众数出现次数超过一半,所以可以排个序,取中间那个数就OK啦,这时候只要注意数组的长...原创 2019-09-05 21:15:41 · 188 阅读 · 0 评论 -
颠倒二进制位
颠倒给定的 32 位无符号整数的二进制位。原题示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式...原创 2019-09-05 21:23:25 · 418 阅读 · 0 评论 -
位1的个数
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’的个数(也被称为汉明重量)。原题示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011中,共有三位为 '1'。示例 2:输入:0000000000000000000000001...原创 2020-01-24 00:11:44 · 237 阅读 · 0 评论 -
2的幂
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。原题示例1:输入: 1输出: true解释: 20= 1示例 2:输入: 16输出: true解释: 24= 16示例 3:输入: 218输出: false思路分析:对于某个数如果是2的幂,class Solution { public: bool isPowerOfT...原创 2019-09-05 21:38:29 · 208 阅读 · 0 评论 -
数字范围按位与
给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。原题示例 1:输入: [5,7]输出: 4示例 2:输入: [0,1]输出: 0思路分析:暴力可以,但是必超时。这个怎么办。。。看招》》》》》》》》》》》既然从m到n连续数字,那么仔细想想,这n-m+...原创 2019-09-05 21:52:39 · 283 阅读 · 0 评论 -
只出现一次的数字|||
给定一个整数数组nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。原题示例 :输入: [1,2,1,3,2,5]输出: [3,5]注意:结果输出的顺序并不重要,对于上面的例子,[5, 3]也是正确答案。思路分析:根据异或的特性可得,0^x=x,x^x=0。第一步先让数组所有数与0异或,得到的是两个只出现过一次的数的异或。...原创 2019-09-05 21:59:51 · 224 阅读 · 0 评论 -
缺失数字
给定一个包含 0, 1, 2, ..., n中n个数的序列,找出 0 .. n中没有出现在序列中的那个数。原题示例 1:输入: [3,0,1]输出: 2示例2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?思路分析:本人只想到了数学解决方法,求和,再遍历减去每个元素,剩下的...原创 2019-09-05 22:09:28 · 152 阅读 · 0 评论 -
最大单词长度乘积
给定一个字符串数组words,找到length(word[i]) * length(word[j])的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。原题示例1:输入: ["abcw","baz","foo","bar","xtfn","abcdef"]输出: 16解释: 这两个单词为 "abcw", "xtfn...原创 2019-09-07 07:11:03 · 376 阅读 · 0 评论