【Leetcode】477. Total Hamming Distance
来源:互联网 发布:贵州云博大数据 编辑:程序博客网 时间:2024/05/02 02:53
方法一:
思路:
(1)遍历数组nums,对每一个nums[i],求其余后面的每一个nums[j]的Hamming Distance。
(2)求x与y的Hamming Distance的方法:
---1)先求x^y的结果res。
---2)再依次求32位res的每一位与1进行与操作的结果,若不为0,则Hamming Distance加一。
public class Solution {public int totalHammingDistance(int[] nums) {int len = nums.length;if (len == 0)return 0;int result = 0;for (int i = 0; i < len - 1; i++) {for (int j = i + 1; j < len; j++)result += hammingDistance(nums[i], nums[j]);}return result;}public int hammingDistance(int x, int y) {int res = x ^ y;int count = 0;for (int i = 0; i < 32; i++) {if ((res & 1) != 0)count++;res >>= 1;}return count;}}
超时!!!
方法二:
思路:
(1)设置变量oneCount记录某一位上1的个数,result记录总的Hamming Distance。
(2)依次判断32位中的每一位。每判断完一位,右移一位继续判断下一位。
(3)针对每一位,遍历nums数组,判断每一个nums[j]的该位是否为1(nums[j]与1进行与操作得到的结果不是0则nums[j]的该位为1,oneCount加一)。
(4)遍历完nums数组后,oneCount * (len - oneCount)即为该位上的Hamming Distance,加到总结果result中。
public class Solution {public int totalHammingDistance(int[] nums) {int result = 0, oneCount = 0, len = nums.length;for (int i = 0; i < 32; i++) {oneCount = 0;for (int j = 0; j < len; j++) {if ((nums[j] & 1) != 0)oneCount++;nums[j] >>= 1;}result += (oneCount * (len - oneCount));}return result;}}Runtime:45ms
1 0
- LeetCode 477. Total Hamming Distance
- 【Leetcode】477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- [leetcode] 477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- Leetcode-477. Total Hamming Distance
- 【LeetCode】 477. Total Hamming Distance
- [leetcode]477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- [LeetCode]477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- Leetcode: 477. Total Hamming Distance
- leetcode 477. Total Hamming Distance
- leetcode 477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- leetcode 477. Total Hamming Distance
- 安全算法
- hudson安装以及使用
- 从零开始学写HTTP服务器(三)请求资源
- C++ const 用法总结
- 算法入门经典2 第3章解题报告
- 【Leetcode】477. Total Hamming Distance
- 求一个int数是否是4的幂
- python3 串口通讯
- MAC10.12Caps Lock失灵
- SpringMVC 菜鸟教程 3 文件上传 CommonsMultipartResolver
- 大话设计模式-工厂方法模式
- 滑膜控制的基本原理
- CSDN公式编辑
- 日常练习