位运算
杨戬没有你我怎么活
喜欢的人是杨戬!
展开
-
leetCode201
class Solution { public: int rangeBitwiseAnd(int left, int right) { int i = 0; while(left != right) { left >>= 1; right >>= 1; i++; } return left << i; }原创 2021-04-16 15:57:22 · 178 阅读 · 0 评论 -
1290. 二进制链表转整数
题目: 给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。 请你返回该链表所表示数字的 十进制值 。 示例 1: 输入:head = [1,0,1] 输出:5 解释:二进制数 (101) 转化为十进制数 (5) 示例 2: 输入:head = [0] 输出:0 示例 3: 输入:head = [1] 输出:1 示例 4: 输入:head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0] 输出:18880 示例 5:原创 2020-06-24 17:35:13 · 99 阅读 · 0 评论 -
剑指 Offer 56 - II. 数组中数字出现的次数 II
题目: 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。 示例 1: 输入:nums = [3,4,3,3] 输出:4 示例 2: 输入:nums = [9,1,7,9,7,9,7] 输出:1 限制: 1 <= nums.length <= 10000 1 <= nums[i] < 2^31 题解: 这道题的关键就在于只有一个数字只出现了一次,其他都出现了三次,那么按位来讲,相同位全部加起来,那个特殊的数在位上为1时,结果是3原创 2020-06-24 11:13:38 · 171 阅读 · 0 评论 -
leetcode 477
题目: 两个整数的汉明距离 指的是这两个数字的二进制数对应位不同的数量。 计算一个数组中,任意两个数之间汉明距离的总和。 示例: 输入: 4, 14, 2 输出: 6 解释: 在二进制表示中,4表示为0100,14表示为1110,2表示为0010。(这样表示是为了体现后四位之间关系) 所以答案为: HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6. 注意: 数组中元.原创 2020-06-17 20:20:11 · 155 阅读 · 0 评论