当前位置: 首页 > news >正文

Study Plan For Algorithms - Part42

1. 前 n 个数字二进制中 1 的个数
给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。
方法一:

def countBits(n):res = []for i in range(n + 1):res.append(countOnes(i))return resdef countOnes(x):count = 0while x > 0:x &= x - 1count += 1return count

方法二:

def countBits(n):res = [0]for i in range(1, n + 1):res.append(res[i & (i - 1)] + 1)return res

方法三:

def countBits(n):res = []for num in range(n + 1):binary = bin(num)[2:]  # 将数字转换为二进制字符串并去除前缀'0b'ones_count = sum(1 for bit in binary if bit == '1')res.append(ones_count)return res

http://www.mrgr.cn/news/38036.html

相关文章:

  • 预防工作场所的违规政策
  • 【linux】不小心禁用了 nvidia 显卡 PCIe 总线扫描怎么办
  • 读数据湖仓02数据抽象
  • CFR( Java 反编译器)
  • C++学习笔记----8、掌握类与对象(一)---- 对象中的动态内存分配(5)
  • 《高等学校研究生英语系列教材 综合教程 上》期末复习题,看这一篇就够了!!!!
  • 嵌入式学习——进程间通信方式(3)—— 共享内存
  • Doris安装部署指南
  • spring揭秘24-springmvc02-5个重要组件
  • <<迷雾>> 第 1 章 了解计算机, 要从电开始 示例电路
  • FastAPI 第六课 -- 请求和响应
  • 基于yolov8的辣椒缺陷检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • AMD 矩阵核心
  • 构建.NET Core Web API为Windows服务安装包
  • 在windows上编译micropython工程出错
  • 基于Springboot投稿和稿件处理系统设计与实现
  • 【C++前缀和】2731. 移动机器人|1922
  • 《凡人歌》中的IT职业启示录
  • react 状态管理
  • 【友元补充】【动态链接补充】