位运算
new一个对象()
这个作者很懒,什么都没留下…
展开
-
Leetcode 810.黑板亦或游戏(博弈论)
题目: 黑板上写着一个非负整数数组 nums[i] 。Alice 和 Bob 轮流从黑板上擦掉一个数字,Alice 先手。如果擦除一个数字后,剩余的所有数字按位异或运算得出的结果等于 0 的话,当前玩家游戏失败。 (另外,如果只剩一个数字,按位异或运算得到它本身;如果无数字剩余,按位异或运算结果为 0。) 换种说法就是,轮到某个玩家时,如果当前黑板上所有数字按位异或运算结果等于 0,这个玩家获胜。 假设两个玩家每步都使用最优解,当且仅当 Alice 获胜时返回 true。 示例: 输入: nums = [1原创 2021-05-22 18:42:02 · 219 阅读 · 1 评论 -
奇特的位运算(1)找出重复的数
题目:找出重复的数 把1~1000共计1000个数放入一个长度为1001的数组中,同时再放入一个重复的数b,这个数组中有且只有一个重复的数,如何找出这个重复的数? 思路: 异或运算:^ A^A=0 B^0=0 当有多个^运算时,可以交换位置。 这个时候我们就可以想到再创造一个拥有1~1000的数组,将这两个数组的每一个元素进行^运算,由于重复的数b一共进行了2次 ^运算(b ^b ^b=b),而其他的元素只进行了一次 ^运算,最终运算的结果就是重复的数b 题解: package test; import j原创 2021-04-21 20:34:23 · 230 阅读 · 0 评论