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

企业qq购买平台seo优化员

企业qq购买平台,seo优化员,视频多的网站建设,邢台做网站可信赖最近看到一个题&#xff0c;就是算一个int里面有多少个1。这个还是挺常用的&#xff0c;也不难&#xff0c;就是判断最后一位是不是1&#xff0c;然后移位&#xff0c;很快就能给答案。 int hammingWeight(int n) {int result 0;for(int i 0; i < 31; i){if(n & 1)res…

最近看到一个题,就是算一个int里面有多少个1。这个还是挺常用的,也不难,就是判断最后一位是不是1,然后移位,很快就能给答案。

    int hammingWeight(int n) {int result = 0;for(int i = 0; i < 31; i++){if(n & 1)result++;n = n >> 1;}return result;}

但是提交上去看到答案也不是很理想。

主要是内存用的不是很好。查一下这个,是有个Brian Kernighan算法,算法大概是这样的:

int hammingWeight(int n) {        while (n) {n &= (n - 1);++count;}
}

其中关键的就是这句n &= (n - 1);

也就是n = n & (n - 1);

仔细看看这个什么意思呢,关于位操作,之前其实写过一篇。C语言位操作详解:基础原理与实际应用示例-CSDN博客

 关于&,是这样的:

只有两个位都是1时,结果位才是1。
可以用来清除某一段位数据

以6为例子:

二进制是110,那么-1就是101,再&之后就是100(4)。

之后-1就是011,再&之后就是000。跳出循环。

本质就是跳过了0,每次只处理1。

再白话一点就是每次从后清掉一个1,直到清完。

相比以前要硬循环31次,确实巧妙了一些。。。

其实刚刚做的时候,就在想能不能减少循环的次数,其实如果多想几天,也许这种解法也能想到。到时候就也能青史留名啦。。。

http://www.dtcms.com/wzjs/508646.html

相关文章:

  • 做网站挂广告赚多少钱今日热点新闻10条
  • asp.net网站开发项目化教程谷歌浏览器在线入口
  • 网站建设套餐自助报价长春网络优化哪个公司在做
  • 经营范围网站建设宁波企业网站seo
  • 保定 网站制作 招聘站长工具精品
  • 广东营销式网站上海百度seo公司
  • 长春 餐饮 网站建设推广策略及推广方式
  • 做讲课ppt的网站湘潭网站制作
  • 工业设计网站导航杭州排名推广
  • 公司做公司网站宣传seo指的是什么
  • 菏泽市住房和建设局网站上海站优云网络科技有限公司
  • 1000元能否做网站品牌营销服务
  • 付公司制作网站费怎么做凭证永久免费个人网站注册
  • 网站开发费用一般为多少品牌全案营销策划
  • 做网站找大地资源网在线观看免费
  • 黑帽seo技术免费网站建设seo
  • 山东建设科技产品推广网站高端企业网站定制公司
  • 银川市网站建设考证培训机构报名网站
  • 嘉兴建设中学网站百度搜索广告价格
  • 成都网站建设价格最新发布的最新
  • 域名访问网站 过程广告竞价推广
  • wordpress 3.5 下载seo是怎么优化上去
  • 北海哪里做网站全网推广引流黑科技
  • 网站建设广告词谷歌seo搜索引擎下载
  • 淘宝网站制作教程如何做百度搜索推广
  • 成都网站建设 网络公司好的推广方式
  • wordpress菜单id长春百度关键词优化
  • 一家公司做两个网站吗seo排名怎么做
  • 津南房地产网站建设品牌推广策划书范文案例
  • 明年做哪些网站能致富时空seo助手