文章目录
- [461. 汉明距离](https://leetcode.cn/problems/hamming-distance/submissions/542447020/)
- [448. 找到所有数组中消失的数字](https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array/submissions/)
- [136. 只出现一次的数字](https://leetcode.cn/problems/single-number/submissions/542442235/)
- [448. 找到所有数组中消失的数字](https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array/)
461. 汉明距离
本身不改变 x 和 y,每次取不同的偏移位进行比较,不同则加一。
循环固定取满 32 。
class Solution {public int hammingDistance(int x, int y) {int ans = 0;for(int i=0;i<32;i++){//和 1向与 就是当两个数都是1 的时候就返回1,不然就返回0int a = (x>>i)&1,b=(y>>i)&1;// 异或就是两个不一样就为1 一样则为0ans += a^b;}return ans;}
}
448. 找到所有数组中消失的数字
class Solution {public List<Integer> findDisappearedNumbers(int[] nums) {int n = nums.length;List<Integer> res = new ArrayList<>();HashSet<Integer> set = new HashSet<>();for(int i=0;i<n;i++){set.add(nums[i]);}for(int i =1 ; i <=n;i++){if(set.add(i)){res.add(i);}}return res;}
}
136. 只出现一次的数字
、两个数相同异或等于0 不同等与一 一直循环异或就可以得到最终的那个数
class Solution {public int singleNumber(int[] nums) {int x = 0;for(int i =0;i<nums.length;i++){x^=nums[i];}return x;}
}
448. 找到所有数组中消失的数字
SET去重,直接加入,如果set能add成功的话说明 nums中没有,这时候就可以加入list
class Solution {public List<Integer> findDisappearedNumbers(int[] nums) {int n = nums.length;List<Integer> res = new ArrayList<>();HashSet<Integer> set = new HashSet<>();for(int i=0;i<n;i++){set.add(nums[i]);}for(int i=1;i<=n;i++){if(set.add(i)){res.add(i);}}return res;}
}