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

做网赌网站做程序员需要什么条件

做网赌网站,做程序员需要什么条件,戴尔网站建设的目标,wordpress点餐目录 专题1:位移的妙用题目:位1的个数(也被称为汉明重量)解法1:遍历所有位,判断每个位的数字是否是1Go代码 解法2:依次消除每个1的位 numnum&(num-1)Go代码 题目:比特位计数思路…

目录

  • 专题1:位移的妙用
    • 题目:位1的个数(也被称为汉明重量)
      • 解法1:遍历所有位,判断每个位的数字是否是1
        • Go代码
      • 解法2:依次消除每个1的位 num=num&(num-1)
        • Go代码
    • 题目:比特位计数
      • 思路分析:遍历每个数,使用上面的位1的个数计算即可
      • Go代码
    • 题目:颠倒二进制位
      • 思路分析:获得低位的数值,左移到高位去
      • Go代码
  • 专题2:位实现加减乘除
    • 题目:两整数之和
      • 思路分析:a&b<<1得进位,a^b得非进位
      • Go代码
    • 题目:递归乘法
      • 思路分析:循环 + 位移
      • Go代码

专题1:位移的妙用

题目:位1的个数(也被称为汉明重量)

题目链接:LeetCode-191. 位1的个数
在这里插入图片描述

解法1:遍历所有位,判断每个位的数字是否是1

Go代码

func hammingWeight(num uint32) int {count := 0for i:=0; i<32; i++ {count += int((num >> i) & 1)}return count   
}

或者

func hammingWeight(num uint32) int {count := 0for i:=0; i<32; i++ {if num & (1 << i) != 0 {count++}}return count   
}

解法2:依次消除每个1的位 num=num&(num-1)

Go代码

func hammingWeight(num uint32) int {count := 0for num != 0 {// 除了最后1个1在&之后被去掉了,前面的&之后 1还是1 0还是0num = num & (num-1)count++}return count
}

题目:比特位计数

题目链接:LeetCode-338. 比特位计数
在这里插入图片描述

思路分析:遍历每个数,使用上面的位1的个数计算即可

Go代码

func countBits(n int) []int {ret := make([]int, 0)for i:=0;i<=n;i++ {ret = append(ret, hammingWeight(i))}return ret
}func hammingWeight(n int) int {count := 0for n != 0 {n = n & (n-1)count++}return count
}

题目:颠倒二进制位

题目链接:LeetCode-190. 颠倒二进制位
在这里插入图片描述

思路分析:获得低位的数值,左移到高位去

Go代码

func reverseBits(num uint32) uint32 {var ret uint32for i,j:=0,31; i<32 && j>=0; i,j=i+1,j-1 {v := num >> i & 1ret = ret | (v<<j)}return ret
}

专题2:位实现加减乘除

题目:两整数之和

题目链接:LeetCode-371. 两整数之和
在这里插入图片描述

思路分析:a&b<<1得进位,a^b得非进位

Go代码

func getSum(a int, b int) int {for b!= 0 {carry := (a & b)<<1 //计算进位a = a ^ b  //计算非进位部分的和b = carry   //更新 b 为进位}return a
}

题目:递归乘法

题目链接:LeetCode-面试题 08.05. 递归乘法
在这里插入图片描述

思路分析:循环 + 位移

在循环中不断将其中一个数加倍(左移),然后根据另一个数的每一位是否为1,来决定是否将加倍后的数累加到最终的结果中。

Go代码

func multiply(A int, B int) int {min := getMin(A, B)max := getMax(A, B)ret := 0for min != 0{//位为1时才更新到ret,否则max一直更新if min & 1 == 1 {ret += max}min = min >> 1  //min除以2max = max << 1  //max乘以2}return ret
}
func getMin(a int, b int) int {if a >= b {return b}return a
}
func getMax(a int, b int) int {if a >= b {return a}return b
}
http://www.yayakq.cn/news/244660/

相关文章:

  • 我的世界皮肤网站做网页设计的标准尺寸
  • 网站建设与推广策划案案例wordpress 支持数据库
  • 班级网站开发环境wordpress 显示子菜单
  • 从零开始学做网站 网站百度上海分公司
  • 菏泽网站备案拍照最新logo设计大赛
  • 许昌做网站汉狮网络网站建设app下载
  • 金湖建设局网站cad做彩图那个网站应用好用
  • 广东住房和城乡建设厅官方网站制作销售网站有哪些
  • 建设工程消防验收网站雏鸟app网站推广
  • 网站开发一般多钱网站导航栏怎么做
  • 西安企业网站排名优化工具珠宝行网站建设方案
  • 网站仿制成都网站建设门户
  • 自己服务器做网站如何备案太平保宝app免费下载二维码
  • 郓城微信网站建设视频类网站如何做缓存
  • 制作响应式网站报价有哪些做淘宝素材的网站
  • 模板建站哪里有淘宝seo是什么意思啊
  • 祥云平台英文网站网站开发python
  • 洋县住房和城乡建设管理局网站制作网站好的公司
  • 图片网站 模板wordpress post 模板
  • 上海网站建设 乐云seo做网站的公司成都
  • com网站注册域名网站开发维护入哪个科目
  • 百度站长平台wordpress怎么上传电影
  • 北京礼品网站建设网站开发税目编码
  • 公司做网站合同电子商务公司的名字
  • 泰州谁会建网站有关做详情页的参考网站
  • 网站登录密码忘记怎么办网页版qq邮箱登录
  • 站长工具综合查询系统走廊文化建设图片网站
  • 漯河网站关键词优化高端网站开发案例展示
  • 泉州安全教育平台seo是哪个英文的缩写
  • 绍兴做微网站互联网官网