摘要:
231. 2的幂 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 输入: 1 输出: true 解释: 20 = 1示例 2: 输入: 16 输出: true 解释: 24 = 16示例 3: 输入: 218 输出: false 检测是否为 2 的幂: 我们通过 x & (-x 阅读全文
摘要:
面试题 05.03. 翻转数位 给定一个32位整数 num,你可以将一个数位从0变为1。请编写一个程序,找出你能够获得的最长的一串1的长度。 示例 1: 输入: num = 1775(110111011112)输出: 8示例 2: 输入: num = 7(01112)输出: 4 分析: 维护两个变量 阅读全文
摘要:
Bitset A bitset stores bits (elements with only two possible values: 0 or 1, true or false, ...). (1)构造函数 #include <iostream> // std::cout #include <s 阅读全文
摘要:
面试题 05.06. 整数转换 整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。 示例1: 输入:A = 29 (或者0b11101), B = 15(或者0b01111) 输出:2示例2: 输入:A = 1,B = 2 输出:2 class Solution { public: 阅读全文
摘要:
371. 两整数之和 不使用运算符 + 和 - ,计算两整数 a 、b 之和。 示例 1: 输入: a = 1, b = 2输出: 3示例 2: 输入: a = -2, b = 3输出: 1 解题思路 a ^ b可以得到两数相加不进位的加法结果 (a & b 阅读全文
摘要:
1356. 根据数字二进制下 1 的数目排序 给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。 如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。 请你返回排序后的数组。 示例 1: 输入:arr = [0,1,2,3,4,5,6, 阅读全文
摘要:
数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2 #include<iostream> #include<bit 阅读全文
摘要:
762. 二进制表示中质数个计算置位 给定两个整数 L 和 R ,找到闭区间 [L, R] 范围内,计算置位位数为质数的整数个数。 (注意,计算置位代表二进制表示中1的个数。例如 21 的二进制表示 10101 有 3 个计算置位。还有,1 不是质数。) 示例 1: 输入: L = 6, R = 1 阅读全文
摘要:
476. 数字的补数 给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。 示例 1: 输入: 5 输出: 2解释: 5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。示例 2: 输入: 1 输出: 0解释: 1 的二进制表示为 1(没有前导零位),其补数为 阅读全文
摘要:
面试题 05.07. 配对交换 配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推)。 示例1: 输入:num = 2(或者0b10) 输出 1 (或者 0b01)示例2: 输入:num = 3 输出:3 32位二进制数偶数位为1 阅读全文