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

wordpress视频幻灯片南昌seo网站推广费用

wordpress视频幻灯片,南昌seo网站推广费用,网站建设超链接制作,seo搜索引擎优化哪家好【力扣题】题目描述: 题解:从0到n的整数,逐一统计二进制中1的个数,记录在一个新列表中。 【Python3】代码: 1、解题思路:Python函数。 知识点:bin(...):转为二进制字符串&#xff…

【力扣题】题目描述:

题解:从0到n的整数,逐一统计二进制中1的个数,记录在一个新列表中。

【Python3】代码:

1、解题思路:Python函数。

知识点:bin(...):转为二进制字符串,即"0bxxx"。

              字符串.count(...):统计字符串中某字符出现的次数。

              列表.append(...):往列表尾部添加元素。

              列表推导式:用简洁的方式创建列表。即 [ 对元素的简单操作 for 变量 in 可迭代对象 ]

class Solution:def countBits(self, n: int) -> List[int]:res = [bin(i)[2:].count("1") for i in range(n+1)]return res#相当于res = []for i in range(n+1):res.append(bin(i)[2:].count("1"))return res

2、解题思路:Brian Kernighan算法。

每次将整数的二进制最低位的1消除为0,直到整数变为0。消除多少次则二进制中有多少个1。

num &= (num-1) 即 num = num & (num-1) 。

相当于将二进制最低位的1消除为0。若num为2的整数幂,则num&(num-1)=0。

例如:num=5(二进制101),num-1=4(二进制100),num&(num-1)=101&100=100(即将101的最低位的1消除为0)。

class Solution:def countBits(self, n: int) -> List[int]:res = []for i in range(n+1):cou = 0while i > 0:i &= (i-1)cou += 1res.append(cou)return res# 或者def count_one(num):cou = 0while num > 0:num &= (num-1)cou += 1return cou  res = [count_one(i) for i in range(n+1)]return res

3、解题思路:动态规划。

将一个问题拆分成多个子问题,解决子问题并记录子问题的结果减少重复计算,最终整个问题解决。

(3-1)若num是2的整数幂,num中只有最高位有1,则记录num。

若num不是2的整数幂,则num的二进制 比 去除最高位之后的二进制 多一个1。

例如:5(二进制101),去除最高位之后的二进制01(其个数已统计过为1),则5的二进制中1的个数为1+1=2个。

class Solution:def countBits(self, n: int) -> List[int]:# 动态规划--最高有效位res = [0]high = 0                    # 记录最高有效位即二进制中只有最高位有一个1for i in range(1,n+1):if i & (i-1) == 0:high = ires.append(res[i-high] + 1)return res

(3-2)将二进制右移一位,去除最低位之后的二进制中1的个数已统计过;被去除的最低位若为1则结果中再加1。

例如:5(二进制101),右移一位之后的二进制10(其个数已统计过为1),被去除的最低位为1则5的二进制中1的个数为1+1=2个。

知识点:num >> 1:将num二进制右移一位。

              i & 1:将num与1进行二进制与运算。

class Solution:def countBits(self, n: int) -> List[int]:# 动态规划-最低有效位res = [0]for i in range(1,n+1):res.append(res[i >> 1] + (i & 1))return res

(3-3)num&(num-1)消除num最低位的1,则num 比 消除最低位1之后 多一个1。

例如:num=5(二进制101),num-1=4(二进制100),num&(num-1)=101&100=100,二进制100其个数已统计过为1,则5的二进制中1的个数为1+1=2个。

class Solution:def countBits(self, n: int) -> List[int]:# 动态规划--最低设置位res = [0]for i in range(1,n+1):res.append(res[i & (i-1)] + 1)return res

http://www.yayakq.cn/news/455014/

相关文章:

  • 西北网站建设阿里巴巴国际站网页版
  • 小皮搭建本地网站有了域名怎么制作网站吗
  • 移动端网站开发开发公司税金计算基数
  • 网站备案 手印随便谁能帮忙做网站备案
  • 宁晋网站建设代理价格pc端应用界面ui设计
  • 西宁网站推广可信网站认证的区别
  • 做网上水果网站的调查工程建设网站
  • 有什么网站可以免费建站免费建网站韶山百度seo
  • 石家庄免费网站制作内网搭建wordpress
  • 南山高端网站建设决定网站打开的速度吗
  • 新零售型网站开发自己做的网站怎样链接数据库
  • 建立一个网站需要什么网站备案信息找回
  • 沈阳商城网站制作上海突然传来噩耗
  • 沈阳三好街做网站公司做网页局域网站点配置
  • php与dw怎么做校园网站做网站源码需要多少钱
  • 泉州住房建设局网站注册城乡规划师
  • 达内网站建设wordpress连接sql
  • 上蔡专业网站建设高端网站建站
  • 批量网站访问检测php网站制作教程
  • 易加网站建设方案亚洲tv
  • 查询网站备案查询深圳宝安区网站建设
  • 葫芦岛建设工程信息网站开发一款app需要多少钱?
  • 黑龙省建设厅网站wordpress关闭功能
  • 网站制作 北京网站建设公司天晴创艺网站建设百度小程序
  • 俄语淘宝网站建设品牌建设的概念
  • 推销什么企业做网站和app6湖北好的快速排名系统
  • 厦门网站建设求职简历优质的杭州网站优化
  • 网站的首页标题在哪里设置的江苏省建设工人考勤网站
  • 北京住房投资建设中心网站首东莞阳光网官方网站登录
  • 网站源码如何使用wordpress文章怎么消失