进制运算
文章平均质量分 76
甘甘甘甘甘甘甘
码不停题
展开
-
数组中唯一成对的数字
数组中唯一成对的数字 题解 1-1000折1000个数放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来,不用辅助存储空间。 对于这道题目,可以运用位运算中的异或运算来解决。 首先明确异或运算的两个性质: 1.A^A = 0 2.A^0 = A 假设在arr数组中K为重复的数字,则获取K的思路是将数组中的其它非重复数字...原创 2019-01-01 17:04:12 · 433 阅读 · 0 评论 -
二进制中1的个数
题解 请实现一个函数,输入一个整数,输出该数二进制中1的个数。 思路 这里提供一种比较有趣的方法。我们可以尝试将num二进制中的每个1依次消去(即变为0),而后统计共执行了多少次消除操作。 首先明确两个性质: 1.整数减一后,其二进制最低位的1会变为0而其后的0全部变为1。(感兴趣的可以自行验证) 2.整数减一后,再与整数做与运算((num-1)&num)即可实现消除二进制中最低位1...原创 2019-01-04 15:40:58 · 395 阅读 · 0 评论 -
进制运算例题
进制运算例题 一整数数列中某一数字出现1次,其他数字都出现K次,输出出现1次的数字。 思路 明确一个性质K进制的K个相同数字不进位相加,其结果为0。 以两个3的二进制为例 所以,用进制运算解此题,可以将数组中每个数字转为K进制然后相加,所得结果为出现1次数字的K进制,最后将结果转为2进制输出即可。 需要注意的是: 1.不进位加法的写法:转换为K进制后,每列相加之和模K。 2.运用二维数组进行...原创 2019-01-11 16:08:19 · 1099 阅读 · 0 评论