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

搭建网站需要什么凯里门户网

搭建网站需要什么,凯里门户网,竞价单页系统,合肥网站设java数据结构与算法刷题目录#xff08;剑指Offer、LeetCode、ACM#xff09;-----主目录-----持续更新(进不去说明我没写完)#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 异或统计1的个数2. 位移操作处理3. Brian Kernighan算法 位运…java数据结构与算法刷题目录剑指Offer、LeetCode、ACM-----主目录-----持续更新(进不去说明我没写完)https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 异或统计1的个数2. 位移操作处理3. Brian Kernighan算法 位运算https://blog.csdn.net/grd_java/article/details/136119268 1. 异或统计1的个数 解题思路时间复杂度O( 1 1 1)或者32反正最多就是每个二进制为查一下空间复杂度O( 1 1 1) 异或操作两数相同异或为0两数不相同异或为1我们异或x和y后统计结果二进制中1的数量即可 代码 使用编程语言自带的计算二进制表达式中1的个数的函数 class Solution {public int hammingDistance(int x, int y) {return Integer.bitCount(x ^ y);//统计x异或y后1的个数} }2. 位移操作处理 解题思路时间复杂度O( l o g 2 C log_2C log2​C)C是数据范围最多31表示二进制的位数空间复杂度O( 1 1 1) 法一是调用函数来统计1的个数如果不能用函数呢我们自己如何实现相同效果 代码 通过位移操作不断取x和y的最低位进行比较如果不一样就统计 class Solution {public int hammingDistance(int x, int y) {int ans 0;//计数while(x!0 || y!0){//只要x或y都不是全0就继续ans (x 1) ! (y 1)? 1 : 0;//x和y都取最低位如果不一样ans1否则ans0x 1;//统计最低位后右移一位将最低位移走下一次比较最低位的高位y y1;}//下面代码是上面代码的简化版 // for(int i 0;i32;i){//题目规定每个二进制有32位 // int i1 x i 1;//让当前为移到最低位后通过1操作取出 // int i2 y i 1; // if (i1!i2) ans;//如果取出的最低位不一样就ans1 // }return ans;} }异或后通过位移操作统计1的个数。上面第二种实现方式同时位移x和y这里直接计算x^y后统计1的个数即可 class Solution {public int hammingDistance(int x, int y) {int ans 0;//计数int i x ^ y;//异或不同位会置为1while(i!0){//只要还有1就继续ans i1;//取最低位是1就ans1否则ans0i1;//右移一位将当前已经处理的最低位抛弃}return ans;} }3. Brian Kernighan算法 解题思路时间复杂度O( l o g 2 C log_2C log2​C)C是数据范围最多31表示二进制的位数空间复杂度O( 1 1 1) x异或y后我们需要统计1的个数但是如果异或结果为100000000001.我们使用法2需要对所有位进行处理虽然我们一眼看到只有两个1但是法二依然需要将所有的位数都处理一遍我们如何跳过中间的0直接统计1的个数呢让上面这一串只循环右移2次针对这个问题BK算法出现了他利用了二进制的特性实现一次性删除最右侧的1的效果 对于十进制来说我们做减法时低位不够减需要向高位借1拿过来就是10二进制也一样不够减就得借1.拿过来就是2也就是说如果对2进制串进行-1操作的话最低位是1还好可以直接减去如果不够减就必须一直向高位借直到遇到一个够借1的。这样就会将2进制串中最后一个1借掉例如上图中x 10001000-1后最后一个1被借了变成10000111此时将这两个二进制串进行与运算就会实现将最后一个1去掉的效果 我们能够这样用BK算法搞几次就说明这个二进制串有几个1.直到其为0为止 代码 class Solution {public int hammingDistance(int x, int y) {int ans 0;//计数int i x ^ y;while(i!0){i (i-1);//取最后面的1ans;//取一次加一次1出现次数}return ans;} }
http://www.zqtcl.cn/news/9748/

相关文章:

  • 网站系统建设需要什么资质灵感来源网站
  • 网站建设有什么优势沈阳工程建设招标网
  • 免费推广网站推荐网站建设现状分析
  • 珠海品牌网站制作服务宁波seo网络推广主要作用
  • 内存做硬盘缓存软件网站如何申请域名备案
  • 宁夏建设主管部门网站网页打不开显示不安全怎么办
  • 给传销做网站本科自考怎么报名
  • ui网页设计字体网站的优化方案怎么写
  • 呼市做网站公司网站建设主机耗电量
  • 个人可以网站备案吗西安网站建设中心
  • 河北网站建设案例个人网站设计论文下载
  • 网站需要维护中国电力建设公司排名
  • html5 响应式音乐网站酒店网站建设案例
  • 易语言做网站后端网页设计制作公司排行榜
  • 网站建设的主要技术营销网站设计
  • 环保局 网站建设建设银行网站用户名更改
  • 界面设计优秀的网站有哪些南京制作网站多少钱
  • 公司网站设计要多少钱长沙圭塘网站建设公司
  • 国内做免费的视频网站邢台公司网站设计
  • 园区 网站建设策划方案长沙新能源建站补贴
  • 电子商务网站建设 精品课程衡阳网站建设报价方案
  • 如何用织梦程序制作多个页面网站网站建设经验材料
  • 网络建站免费网址牛商网抖音培训
  • 68设计网站开网站制作公司
  • 青浦网站建设推广深圳快速网站制作哪家公司好
  • 厦门做网站公司排名国外最具创意的wordpress博客
  • iis7配置thinkphp网站10m光纤做网站
  • 个人网站也需要备案吗广东省工程招投标信息网
  • 网站必须做可信认证石家庄哪里能做门户网站的
  • 国外网站做家具哪个好8g流量网站