
位操作
hestyle
戎码一生!
展开
-
LeetCode 二进制表示中质数个计算置位(位操作)
描述: 给定两个整数 L 和 R ,找到闭区间 [L, R] 范围内,计算置位位数为质数的整数个数。 (注意,计算置位代表二进制表示中1的个数。例如 21 的二进制表示 10101 有 3 个计算置位。还有,1 不是质数。) 示例 1: 输入: L = 6, R = 10 输出: 4 解释: 6 -> 110 (2 个计算置位,2 是质数) 7 -> 111 (3 个计算置位,3 是质...原创 2019-05-05 15:08:29 · 469 阅读 · 1 评论 -
LeetCode 黑板异或游戏(技巧)
一个黑板上写着一个非负整数数组 nums[i] 。小红和小明轮流从黑板上擦掉一个数字,小红先手。如果擦除一个数字后,剩余的所有数字按位异或运算得出的结果等于 0 的话,当前玩家游戏失败。 (另外,如果只剩一个数字,按位异或运算得到它本身;如果无数字剩余,按位异或运算结果为 0。) 换种说法就是,轮到某个玩家时,如果当前黑板上所有数字按位异或运算结果等于 0,这个玩家获胜。 假设两个玩家每步都使用最...原创 2019-05-18 12:37:04 · 1033 阅读 · 0 评论 -
LeetCode 获取所有钥匙的最短路径(位操作+广度优先搜索)
给定一个二维网格 grid。 “.” 代表一个空房间, “#” 代表一堵墙, “@” 是起点,(“a”, “b”, …)代表钥匙,(“A”, “B”, …)代表锁。 我们从起点开始出发,一次移动是指向四个基本方向之一行走一个单位空间。我们不能在网格外面行走,也无法穿过一堵墙。如果途经一个钥匙,我们就把它捡起来。除非我们手里有对应的钥匙,否则无法通过锁。 假设 K 为钥匙/锁的个数,且满足 1 &l...原创 2019-06-08 16:36:38 · 783 阅读 · 0 评论 -
LeetCode 子数组按位或操作(蛮力法+剪枝)
我们有一个非负整数数组 A。 对于每个(连续的)子数组 B = [A[i], A[i+1], …, A[j]] ( i <= j),我们对 B 中的每个元素进行按位或操作,获得结果 A[i] | A[i+1] | … | A[j]。 返回可能结果的数量。 (多次出现的结果在最终答案中仅计算一次。) 示例 1: 输入:[0] 输出:1 解释: 只有一个可能的结果 0 。 示例 2: 输入:[...原创 2019-06-18 14:53:43 · 477 阅读 · 0 评论