快捷搜索:  汽车  科技

go语言中怎么保留三位有效数字(计算二进制数中1的个数)

go语言中怎么保留三位有效数字(计算二进制数中1的个数)https://leetcode.com/problems/counting-bits/题目出处:例子2:输入:5输出:[0 1 1 2 1 2]

Go语言中文网,致力于每日分享编码知识,欢迎关注我,会有意想不到的收获!

go语言中怎么保留三位有效数字(计算二进制数中1的个数)(1)

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 常规算法

go语言中怎么保留三位有效数字(计算二进制数中1的个数)(2)

2.2 改进思路

避免对递增数组中的每个数值作计算,将4位看做一个单元,单元内0-15的二进制数中1的个数是确定的。这样采用16进制去计算,给定数值,每除以16所得的余数就是落在该单元内的数值,直至被除数为0,将每个单元中1的个数累加既可。

3 golang实现代码

https://github.com/olzhy/leetcode/blob/master/338_Couting_Bits/test.go

go语言中怎么保留三位有效数字(计算二进制数中1的个数)(3)

4 基准测试

4.1 测试代码

go语言中怎么保留三位有效数字(计算二进制数中1的个数)(4)

4.2 测试结果

go语言中怎么保留三位有效数字(计算二进制数中1的个数)(5)

原文:https://leileiluoluo.com/posts/leetcode-counting-binary-bits.html

本文作者:磊磊落落的博客,原创授权发布

猜您喜欢: