go语言中怎么保留三位有效数字(计算二进制数中1的个数)
go语言中怎么保留三位有效数字(计算二进制数中1的个数)https://leetcode.com/problems/counting-bits/题目出处:例子2:输入:5输出:[0 1 1 2 1 2]
Go语言中文网,致力于每日分享编码知识,欢迎关注我,会有意想不到的收获!
1 题目描述给定一个非负整数num,对0 ≤ i ≤ num区间内每个整数,计算其对应的二进制数中1的个数,结果用数组返回。
例子1:输入:2
输出:[0 1 1]
例子2:
输入:5
输出:[0 1 1 2 1 2]
题目出处:
https://leetcode.com/problems/counting-bits/
2 解决思路2.1 常规算法 2.2 改进思路避免对递增数组中的每个数值作计算,将4位看做一个单元,单元内0-15的二进制数中1的个数是确定的。这样采用16进制去计算,给定数值,每除以16所得的余数就是落在该单元内的数值,直至被除数为0,将每个单元中1的个数累加既可。
3 golang实现代码https://github.com/olzhy/leetcode/blob/master/338_Couting_Bits/test.go
4 基准测试4.1 测试代码
4.2 测试结果原文:https://leileiluoluo.com/posts/leetcode-counting-binary-bits.html
本文作者:磊磊落落的博客,原创授权发布