算法通关村第十一关|白银|位运算高频算法题【持续更新】

1.位移

1.1 位1的个数

原题:力扣191.

挨个判断是不是 1 的话需要对整个长度进行遍历,但是采用技巧可以只寻找为 1 的位,然后将其数量记录下来。

public int hammingWeight(int n) {int count = 0;while (n != 0) {n = n & (n - 1);count++;}return count;
}

1.2 比特位计数

原题:力扣338.

public int[] countBits(int num) {int[] bits = new int[num + 1];for (int i = 0; i <= num; i++) {bits[i] = countOnes(i);}return bits;
}public int countOnes(int x) {int ones = 0;while (x > 0) {x &= (x - 1);ones++;}return ones;
}

1.3 颠倒无符号整数

原题:力扣190.

public int reverseBits(int n) {int reversed = 0, power = 31;while (n != 0) {reversed += (n & 1) << power;n >>>= 1;power--;}return reversed;
}

1.4 分块翻转无符号整数

在 JDK,Dubbo等源码中常见。

reverseBits(int n) {n = (n >>> 16) | (n << 16);n = ((n & 0xff00ff00) >>> 8) | ((n & 0x00ff00ff) << 8);n = ((n & 0xf0f0f0f0) >>> 4) | ((n & 0x0f0f0f0f) << 4);n = ((n & 0xcccccccc) >>> 2) | ((n & 0x33333333) << 2);n = ((n & 0xaaaaaaaa) >>> 1) | ((n & 0x55555555) << 1);return n;
}

2.加减乘除

2.1 位运算实现加法

原题:力扣371.

public int getSum(int a, int b) {while (b != 0) {int sign = (a & b) << 1;a = a ^ b;b = sign;}return a;
}

2.2 递归乘法

原题:力扣面试08.05.

要求写一个递归函数,不能使用 * 运算符,实现两个正整数的相乘。

public int multiply(int A, int B) {int min = Math.min(A, B);int max = Math.max(A, B);int ans = 0;for (int i = 0; min != 0; i++) {if ((min & 1) == 1) {ans += max;}min >>= 1;max += max;}return ans;
}

2.3 位运算实现除法

【持续更新】

如果对您有帮助,请点赞关注支持我,谢谢!❤
如有错误或者不足之处,敬请指正!❤
个人主页:星不易 ❤
算法通关村专栏:不易|算法通关村 ❤

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/144284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高并发架构设计(三大利器:缓存、限流和降级)

引言 高并发背景 互联网行业迅速发展&#xff0c;用户量剧增&#xff0c;系统面临巨大的并发请求压力。 软件系统有三个追求&#xff1a;高性能、高并发、高可用&#xff0c;俗称三高。三者既有区别也有联系&#xff0c;门门道道很多&#xff0c;全面讨论需要三天三夜&#…

web3资讯及远程工作

各位如果想了解区块链相关的消息可以通过如下网址了解&#xff0c;里面还会有相关职位招聘&#xff08;包括远程工作&#xff09;&#xff0c;还可以在里面进行发帖&#xff0c;进入即可获得1000积分&#xff0c;后期可以兑换一些礼品Cryptosquare

如何检查 Docker 和 Kubernetes 是否可以访问外部网络,特别是用于拉取镜像的仓库?

要检查 Docker 和 Kubernetes 是否可以访问外部网络&#xff0c;尤其是用于拉取容器镜像的仓库&#xff0c;您可以按照以下步骤进行&#xff1a; 1. 检查节点的网络连接 首先&#xff0c;您需要确保 Kubernetes 节点能够访问外部网络。这可以通过在节点上执行 ping 命令来测试…

git 简单入门

git init touch test.txt git add test.txt git commit -m 初始化 仓库 git log //查找日志 git checkout -b dev //创建并切换dev分支 git branch // 查找分支 此时有master 和 dev分支&#xff0c; 此时在dev分支 dev分支也有test.txt文件 vim test.txt //写入dev …

2023 年 数维杯(B题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2021年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 让我们来看看数维杯&#xff08;B题&#xff09;&#xff01; …

LeetCode617. Merge Two Binary Trees

文章目录 一、题目二、题解 一、题目 You are given two binary trees root1 and root2. Imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge the two trees into a new b…

一文看懂Spark中Cache和CheckPoint的区别

目录 循循渐进理解使用Cache或者PersistCheckPoint缓存和CheckPoint的区别 循循渐进理解 wc.txt数据 hello java spark hadoop flume kafka hbase kafka flume hadoop看下面代码会打印多少条-------------------------(RDD2) import org.apache.spark.rdd.RDD import org.ap…

PHP调用调用API接口的方法及实现

随着互联网、云计算和大数据时代的到来&#xff0c;越来越多的应用程序需要调用第三方的API接口来获取数据&#xff0c;实现数据互通和协同工作。PHP作为一种常用的服务器端语言&#xff0c;也可以通过调用API接口来实现不同系统的数据交互和整合。本文将介绍PHP调用电商API接口…

Jmeter- Beanshell语法和常用内置对象(网络整理)

在利用jmeter进行接口测试或者性能测试的时候&#xff0c;我们需要处理一些复杂的请求&#xff0c;此时就需要利用beanshell脚本了&#xff0c;BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法&#xff0c;所以它和java是可以无缝衔接的。beans…

RK3588平台开发系列讲解(摄像头篇)USB摄像头驱动分析

🚀返回专栏总目录 文章目录 一. USB摄像头基本知识1.1 内部逻辑结构1.2 描述符实例解析二. UVC驱动框架2.1、设备枚举过程2.2、数据传输过程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 USB摄像头驱动位于 drivers\media\usb\uvc\uvc_driver.c ,我们本篇重点看下…

MacOS设置JAVA_HOME环境变量

首先先查看一下&#xff0c;系统当前使用的java是谁&#xff0c;可以使用/usr/libexec/java_home命令 % /usr/libexec/java_home /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home检查一下这个路径下的文件&#xff0c;发现这是一个jre的目录。加上-V参数看…

Redis篇---第二篇

系列文章目录 文章目录 系列文章目录一、为什么 使用 Redis 而不是用 Memcache 呢?二、为什么 Redis 单线程模型效率也能那么高?三、说说 Redis 的线程模型一、为什么 使用 Redis 而不是用 Memcache 呢? 这时候肯定想到的就是做一个 Memcache 与 Redis 区别。 Redis 和 Mem…

移动机器人路径规划(二)--- 图搜索基础,Dijkstra,A*,JPS

目录 1 图搜索基础 1.1 机器人规划的配置空间 Configuration Space 1.2 图搜索算法的基本概念 1.3 启发式的搜索算法 Heuristic search 2 A* Dijkstra算法 2.1 Dijkstra算法 2.2 A*&&Weighted A*算法 2.3 A* 算法的工程实践中的应用 3 JPS 1 图搜索基础 1.1…

AD教程 (十六)常用PCB封装的直接调用

AD教程 &#xff08;十六&#xff09;常用PCB封装的直接调用 打开已经做好的PCB文件 点击设计&#xff0c;生成PCB库&#xff0c;会自动把PCB里所用到的所有封装&#xff0c;全部自动生成 CtrlA 将所有元器件的封装全部选中&#xff08;或者只选中所需要的&#xff09;&#x…

TikTok与心灵成长:娱乐与启发并重

社交媒体已成为我们生活的一部分&#xff0c;其中TikTok以其短视频内容和创新性而闻名。然而&#xff0c;TikTok不仅仅是一个娱乐平台&#xff0c;它还具有潜力成为心灵成长的有力工具。本文将探讨TikTok如何在娱乐与启发之间取得平衡&#xff0c;以促进心灵成长和积极影响。 娱…

利用curl测试WSS连接的建立

记录下&#xff1a; curl -vvv --include --no-buffer \ --header "Connection: Upgrade" \ --header "Upgrade: websocket" \ --header "Host: transcribestreaming.us-east-1.amazonaws.com:8443" \ --header "Origin: http://localhost…

IntelliJ IDEA启动一个普通的java web项目的配置

原创/朱季谦 这是我很久以前刚开始用IntelliJ IDEA时记录的笔记&#xff0c;应该是五年前的一篇笔记了。正好赶上最近离职了&#xff0c;可以有比较多的时间把以前的记录整理一下&#xff0c;可以让刚接触到IntelliJ IDEA的童鞋学习如何在IntelliJ IDEA引入一个单机版的jar形式…

蓝桥杯 冒泡排序

冒泡排序的思想 冒泡排序的思想是每次将最大的一下一下移动到最右边&#xff0c;然后将最右边这个确定下来。 再来确定第二大的&#xff0c;再确定第三大的… 对于数组a[n]&#xff0c;具体来说&#xff0c;每次确定操作就是从左往右扫描&#xff0c;如果a[i]>a[i1],我们将…

Android问题笔记四十五:解决SeekBar操作thumb周围产生的圆形阴影/灰色阴影/白色圆圈的解决办法

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列点击跳转>ChatGPT和AIGC &#x1f449;关于作者 专…

如何在Ubuntu 23.10部署KVM并创建虚拟机?

正文共&#xff1a;1114 字 21 图&#xff0c;预估阅读时间&#xff1a;2 分钟 我们之前对OpenStack醉过一次简单介绍&#xff08;什么是OpenStack&#xff1f;&#xff09;&#xff0c;OpenStack本身是一个云管理平台&#xff0c;它本身并不提供虚拟化功能&#xff0c;而是依赖…