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

免费app做logo的网站网上推广赚钱项目

免费app做logo的网站,网上推广赚钱项目,淄博做网站,wordpress 后台卡题目描述 给你一个整数 n &#xff0c;对于 0 < i < n 中的每个 i &#xff0c;计算其二进制表示中 1 的个数 &#xff0c;返回一个长度为 n 1 的数组 ans 作为答案。 示例 代码思路 第一种方法 最简单的方法就是&#xff0c;遍历然后使用python自带的bin()方法直接…

题目描述

给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。

示例

代码思路

第一种方法

最简单的方法就是,遍历然后使用python自带的bin()方法直接转换为2进制然后用count去数数。

第二种方法

考虑到数的特点,如果该数i为偶数,那么他二进制中1的个数和他i/2的数的1的个数是一样的

那是因为偶数的末尾是0,向右边移动一位,然后就变成i/2,这导致1的数量不变

如果i为奇数,那么它的二进制1的位数=i-1的二进制位数+1

1:奇数二进制末尾为1如果把末尾的1去掉就相当于在原有基础上减1

2:减掉1后,奇数就变成偶数了,而偶数的二进制数又是总和它i/2是相等的,这就进入了递归的环节了。

class Solution(object):def countBits(self, num):res = []for i in range(num + 1):res.append(self.count(i))return resdef count(self, num):if num == 0:return 0if num % 2 == 1:return self.count(num - 1) + 1return self.count(num // 2)

但是这段代码有冗余的地方,因为求到偶数后,要不断递归直至最后一个偶数确定1的个数,而且遍历数值较大的数总是会重复之前已经递归过的数,比如8总会递归4和2,但是4和2已经在4的递归中计算过了,为了加快速度,应该把以前的结果存储起来,然后直接调用就行。

第二种方法的改进

class Solution(object):def countBits(self, num):self.memo = [0] * (num + 1)res = []for i in range(num + 1):res.append(self.count(i))return resdef count(self, num):if num == 0:return 0if self.memo[num] != 0:return self.memo[num]if num % 2 == 1:res = self.count(num - 1) + 1else:res = self.count(num // 2)self.memo[num] = resreturn res

进入count后 判断非0后直接判断是否存在列表里,有的话直接调值。

http://www.mnyf.cn/news/53988.html

相关文章:

  • asp建设的网站制作百度搜索推广官网
  • 公众号做漫画网站网站下载免费软件
  • 网站怎么能被百度收录谷歌推广app
  • 深圳做手机网站网站怎么优化推荐
  • 做美图 网站有哪些东西吗电商网站公司
  • 个人无网站怎样做cps广告八大营销方式有哪几种
  • 小红书企业推广扬州seo优化
  • 正规网站制作公司是哪家上海seo网站优化
  • flash网站导航条怎么做长沙seo搜索
  • 做网站需要啥备案之类的嘛网络怎么做推广
  • 域名怎么实名认证百度seo公司报价
  • 白日梦怎么做的网站推文关键词生成器
  • 做网站是什么会计科目镇江搜索优化技巧
  • cc域名做网站怎么样手机上如何制作自己的网站
  • 张掖专业做网站的公司中国今天最新军事新闻
  • 房地产楼盘微信网站建设营销方案实体店营销方案
  • 武汉知名网站开发公司seo项目经理
  • 游戏网站开发运营的几个思路seo积分优化
  • 成都网站建设福州焊工培训ppt课件
  • 天津市建筑招标信息网网站在线优化工具
  • dede网站暂时关闭上海搜索seo
  • 网站后期运营方案步骤曼联vs曼联直播
  • 大连城乡住房建设厅网站seo学习网站
  • 连云港网站建设常宁seo外包
  • 怎么在百度提交自己的网站推广赚佣金的平台
  • 劳务输送网站建设方案成都网络推广
  • 免费的网站app下载市场调研报告3000字范文
  • 网站开发找聚脑网重庆森林经典台词罐头
  • 邢台网站制作多少钱中国站长网入口
  • 网站推广的方法有哪些window优化大师