当前位置:网站首页>338. Counting Bits
338. Counting Bits
2022-06-22 12:26:00 【Sterben_Da】
338. Counting Bits
Easy
7064333Add to ListShare
Given an integer n, return an array ans of length n + 1 such that for each i (0 <= i <= n), ans[i] is the number of 1's in the binary representation of i.
Example 1:
Input: n = 2 Output: [0,1,1] Explanation: 0 --> 0 1 --> 1 2 --> 10
Example 2:
Input: n = 5 Output: [0,1,1,2,1,2] Explanation: 0 --> 0 1 --> 1 2 --> 10 3 --> 11 4 --> 100 5 --> 101
Constraints:
0 <= n <= 105
Follow up:
- It is very easy to come up with a solution with a runtime of
O(n log n). Can you do it in linear timeO(n)and possibly in a single pass? - Can you do it without using any built-in function (i.e., like
__builtin_popcountin C++)?
class Solution:
def countBits(self, n: int) -> List[int]:
"""
assert Solution().countBits(5) == [0, 1, 1, 2, 1, 2]
assert Solution().countBits(2) == [0, 1, 1]
参考解题思路:动态规划和位运算求解,dp[i]代表i二进制有几个1,
若i二进制位结尾为0,则dp[i]=dp[i>>1],因为末尾是0了,1的个数与i算术右移一样
若i二进制位结尾为1,则dp[i]=dp[i-1]+1,因为末尾是1了,就是让i-1的二进制位1的个数加上现在末尾一个1
时间复杂度:O(n),空间复杂度:O(n)
"""
dp = [0] * (n + 1)
for i in range(1, n + 1):
dp[i] = dp[i - 1] + 1 if i & 1 else dp[i >> 1]
return dp边栏推荐
- Sub account of bank payment interface development
- 【Qt】Qt获取标准系统路径
- Termux set up the computer to connect to the mobile phone. (knock the command quickly), mobile phone termux port 8022
- SAP-FI-财务报表版本设定
- Sap-abap- how to open a local file
- Isn't this another go bug?
- Maui uses Masa blazor component library
- PostGIS through St_ Dwithin retrieves elements within a certain distance
- MySQL_ Query of data processing
- Fluent: split statefulwidget -- simplify page development, jump and value transfer
猜你喜欢

巨杉数据库受邀出席鲲鹏开发者年度盛会2022,共建国产化数字底座

windows系统安装多个mysql版本(不用卸载原版本),新旧版本兼容。

在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式

leetcode 85. 最大矩形

Sap-abap- how to find a table and what related tables the fields have

别再用 System.currentTimeMillis() 统计耗时了,太 Low,StopWatch 好用到爆!

Set up your own website (5)

推荐一款M1芯片电脑快速搭建集群的虚拟机软件

帝云CMS升级PHP8注意事项

MAUI使用Masa blazor组件库
随机推荐
windows系统安装多个mysql版本(不用卸载原版本),新旧版本兼容。
Tis tutorial 01- installation
Parallels Desktop 17.1.4pd virtual machine
leetcode 11. 盛最多水的容器
gradle笔记
Tis tutorial 03 export
Recommend a virtual machine software for fast cluster building of M1 chip computers
请问Flink的动态表是这样创建吗?我用flink cdc 读mysql数据,写flink动态表,发
Detailed explanation of rules and ideas for advance sale of deposit
假如,程序员面试的时候说真话
Isn't this another go bug?
MySQL notes
MySQL_ Query of data processing
SNC processing failed SAP router certificate regeneration
SAP development keys application SSCR keys application
SAP-ABAP-如何实时传输物料主数据,供应商主数据,工单,采购订单等信息给外部系统-隐式增强。
JAXB element details
SiCf batch activation service node
leetcode 85. 最大矩形
Termux set up the computer to connect to the mobile phone. (knock the command quickly), mobile phone termux port 8022