位运算
码奴生来就只知道前进
我的GitHub账号:www.github.com/Mrhuangyi
展开
-
137. 只出现一次的数字 II
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]输出: 99解法一:创建一个长度为sizeof(int)的数组count[sizeof(int)],用coun...原创 2018-10-17 21:15:35 · 529 阅读 · 0 评论 -
832. 翻转图像
给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例 1:输入: [[1,1,0],[1,0,1],[0,0...原创 2018-07-20 23:18:58 · 329 阅读 · 0 评论 -
401. 二进制手表
二进制手表顶部有 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”, “0:0...原创 2018-07-13 15:54:21 · 2061 阅读 · 2 评论 -
693. 交替位二进制数
给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。示例 1:输入: 5输出: True解释:5的二进制数是: 101示例 2:输入: 7输出: False解释:7的二进制数是: 111示例 3:输入: 11输出: False解释:11的二进制数是: 1011示例 4:输入: 10输出: ...原创 2018-07-12 15:32:58 · 638 阅读 · 0 评论 -
338. Bit位计数
给定一个非负整数 num。 对于范围 0 ≤ i ≤ num 中的每个数字 i ,计算其二进制数中的1的数目并将它们作为数组返回。示例:比如给定 num = 5 ,应该返回 [0,1,1,2,1,2].进阶:给出时间复杂度为O(n * sizeof(integer)) 的解答非常容易。 但是你可以在线性时间O(n)内用一次遍历做到吗?要求算法的空间复杂度为O(n)。你能进...原创 2018-07-12 15:17:27 · 228 阅读 · 0 评论 -
476. 数字的补数
给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。 你可以假定二进制数不包含前导零位。 示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0...原创 2018-07-10 10:26:43 · 352 阅读 · 0 评论 -
405. 数字转换为十六进制数
给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。注意:十六进制中所有字母(a-f)都必须是小写。 十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符’0’来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。 给定的数确保在32位有符号整数范围内。 不能使用任何由库提供的将数字直接转换或格式化为十六进制...原创 2018-06-18 15:12:49 · 1595 阅读 · 0 评论 -
190. 颠倒二进制位
颠倒给定的 32 位无符号整数的二进制位。示例:输入: 43261596 输出: 964176192 解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 , 返回 964176192,其二进制表示形式为 00111001011110000010100101000000 。 进阶: 如果多次调用这个函数,你将如何...原创 2018-05-31 15:12:56 · 1639 阅读 · 0 评论 -
371. 两整数之和
不使用运算符 + 和-,计算两整数a 、b之和。示例: 若 a = 1 ,b = 2,返回 3。class Solution {public: int getSum(int a, int b) { int sum = 0 ; int carry = 0; for(int i = 0;i< 32 ;i++){ ...原创 2018-06-11 15:52:54 · 1459 阅读 · 5 评论 -
231. 2的幂
给定一个整数,写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1 输出: true 示例 2:输入: 16 输出: true 示例 3:输入: 218 输出: false分析:负数一定不是2的幂2的整数次幂对应的二进制数只含有0个或者1个1时间复杂度:O(n) 空间复杂度:O(1)class Solution {public: ...原创 2018-05-27 14:57:38 · 384 阅读 · 0 评论 -
LeetCode 136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1] 输出: 1 示例 2:输入: [4,1,2,1,2] 输出: 4分析,只有一个元素出现一次,其余均出现两次,可以想到异或运算符, 遍历整个数组,出现两次的异或以后...原创 2018-05-17 15:47:24 · 165 阅读 · 0 评论 -
ZCMU1416
1416: Find the Lost SockTime Limit: 2 Sec Memory Limit: 128 MBSubmit: 344 Solved: 74[Submit][Status][Web Board]DescriptionAlice bought a lot of pairs of socks yesterday. But when she w原创 2017-11-19 20:57:19 · 232 阅读 · 0 评论 -
260. 只出现一次的数字 III
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。示例 :输入: [1,2,1,3,2,5]输出: [3,5]注意:结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?方法一:先对数组进行排序,然后从第一个数开始遍历数组,如果nums...原创 2018-12-23 21:53:19 · 440 阅读 · 0 评论