- 博客(1)
- 收藏
- 关注
原创 求二进制数中1的个数
对于相邻的两位,先计算这两位的1的个数(最大是2),比如对于32位的数来说,分成 16组,每组计算的是相邻两位的1的个数和,并且将这个和用新得到的数的两位表示(2位可以最大表示4,所以可以存得下这个和,和此时最大为2);这是典型的空间换时间的算法,把0~255中“1”的个数直接存储在数组中,v作为数组的下表,countTable[v]就是v中“1”的个数。我们最容易想到的做法可能会是一个一个数的遍历,因为对于二进制数的操作,除以一个2,原来的数字会减少一个0,若除的过程中有余,表示当前位置有一个1。
2024-05-26 14:46:05
844
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅