位运算
傅里叶不想变换_
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 56 - II. 数组中数字出现的次数 II
思路:将所有的数字都用二进制表示,对于出现三次的数字,各个 二进制位 出现的次数都是 3 的倍数。因此,统计所有数字的各二进制位中 1 的出现次数,并对 3 求余,结果则为只出现一次的数字。class Solution { public static int singleNumber2(int[] nums) { int[] bitArr = new int[32]; for (int i = 0; i < nums.length; i++) { .原创 2021-02-01 15:05:58 · 76 阅读 · 0 评论 -
剑指 Offer 56 - I. 数组中数字出现的次数
思路:异或,我们可以把所有数字分成两组,使得: 1.两个只出现一次的数字在不同的组中; 2.相同的数字会被分到相同的组中。class Solution { public int[] singleNumbers(int[] nums) { int sum = 0; // 将所有数字异或 for (int num : nums) { sum ^= num; } // 找到二进制中第一.原创 2021-02-01 11:56:46 · 56 阅读 · 0 评论