【算法】位运算| & ^ ~ -n n-1

【算法】位运算| & ^ ~ -n n-1

目录

1.| 

2.&

3.^

3.1相加和位

3.1.1无进位去和

3.1.2进位去和

4.~

5.-n

6.n-1

位图


1.| 

1占侧|1 占1|0 化原同 | 同 为同


2.&

0占侧&0 占0&1 化原同 & 同 为同


3.^

无进位加法^0 和原同 ^ 同 消0

3.1相加和位

化二进制bit位01进位/无进位相加和的位上查

3.1.1无进位去和

260. 只出现一次的数字 III - 力扣(LeetCode)

给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。

你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。

示例 1:

输入:nums = [1,2,1,3,2,5] 输出:[3,5] 解释:[5, 3] 也是有效的答案。

示例 2:

输入:nums = [-1,0] 输出:[-1,0]

示例 3:

输入:nums = [0,1] 输出:[1,0]

提示:

  • 2 <= nums.length <= 3 * 104
  • -231 <= nums[i] <= 231 - 1
  • 除两个只出现一次的整数外,nums 中的其他数字都出现两次
public int[] singleNumber(int[] nums) { int sum = 0; for (int i : nums) sum ^= i; // sum:两个不同数的^和 int tmp1 = sum & -sum; // a和b不同,肯定有一位比特位为1,tmp1:右首1提纯数 // 各只出现1次的 不同的 两个数 和1位 肯定不同,一个是0 一个是1,各分开在 此位为01的 2组中,其余出现2次的 都各成对分布在两组中 和为0,分开来两组消和 两不同数各出 int[] ret = new int[2]; for (int i : nums) { //if((i & tmp1) == 0) if((i & tmp1) != 0) // 右首1这位 为1的 这组,两个不同数的其中一个 这位是1的 分到这组 ret[0] ^= i; else ret[1] ^= i; // 右首1这位 为0的 这组,两个不同数的其中一个 这位是0的 分到这组 } return ret; }

3.1.2进位去和

137. 只出现一次的数字 || - 力扣(LeetCode)

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。

示例 1:

输入:nums = [2,2,3,2] 输出:3

示例 2:

输入:nums = [0,1,0,1,0,1,99] 输出:99

提示:

  • 1 <= nums.length <= 3 * 104
  • -231 <= nums[i] <= 231 - 1
  • nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次
public int singleNumber(int[] nums) { int ret = 0; for (int i = 0; i < 32; i++) { int sum = 0; for (int x : nums) if (((x >> i & 1) == 1)) sum++; if(sum % 3 == 1) ret |= 1 << i; }return ret; }

4.~

取反


5.-n

右首1 往左取反, n & -n 右首1纯提


6.n-1

右首1 含右取反n & (n-1) 右首1化0


位图

数变量的二进制槽子存bit01 代 对值

面试题 01.01. 判定字符是否唯一 - 力扣(LeetCode)

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。

示例 1:

输入: s = "leetcode" 输出: false

示例 2:

输入: s = "abc" 输出: true

限制:

  • 0 <= len(s) <= 100
  • s[i]仅包含小写字母
  • 如果你不使用额外的数据结构,会很加分。
public boolean isUnique(String astr) { // 鸽巢原理优化: if(astr.length() > 26) return false; int bitMap = 0; // 位图数变量 for (int i = 0; i < astr.length(); i++) { int x = astr.charAt(i) - 'a'; // 判断字符是否已存在位图中: if(((bitMap >> x) & 1) == 1) return false; // 把此字符在位图中标记存在: bitMap |= (1 << x); } return true; }

Read more

本地部署中文OpenClaw 飞书机器人部署指南

本地部署中文OpenClaw 飞书机器人部署指南

适用场景:在 Windows 本地(PowerShell)一键部署 OpenClaw,使用阿里云百炼作为大模型后端,通过飞书长连接模式实现 AI 机器人。 安装skills工具参考:OpenClaw 最新必安装 10 个 Skills-ZEEKLOG博客 自动化发布小红书:OpenClaw 实现小红书自动化发文:操作指南 步骤 1:安装 OpenClaw(openclaw中文社区) 1. 打开 PowerShell。 2. 执行以下命令一键安装: # 在 PowerShell 中运行 iwr -useb https://clawd.org.cn/install.ps1 | iex * 安装过程会自动下载 Node.js、依赖等,耗时几分钟。 * 安装完成后会自动进入配置向导,或提示你继续下一步。

By Ne0inhk
跨越天堑:机器人脑部药物递送三大技术路径的可转化性分析研究

跨越天堑:机器人脑部药物递送三大技术路径的可转化性分析研究

摘要 血脑屏障是中枢神经系统药物研发最核心的瓶颈。尽管相关基础研究层出不穷,但“论文成果显著、临床转化缓慢”的悖论依然存在。本文认为,突破这一瓶颈的关键在于,将研究重心从“单点机制”转向构建一条“可验证、可复现、可监管”的全链条递送系统。为此,本文提出了一个衡量脑部递送技术可转化性的四维评价标尺:剂量可定义、闭环可监测、质控可标准化、可回退。基于此标尺,本文深度剖析了当前最具潜力的三条技术路径: (1)FUS/低强度聚焦超声联合微泡; (2)血管内可导航载体/机器人; (3)针对胶质母细胞瘤(GBM)的多功能纳米系统。 通过精读关键临床试验、前沿工程研究和系统综述,我们抽离出可直接写入临床或产品方案的核心变量,识别了各自面临的最大转化风险,并提出了差异化的“押注”策略。分析表明,FUS+MB路径因其在“工程控制”上的成熟度,在近期(12-24个月)的转化确定性最高;血管内机器人代表了精准制导的未来趋势,

By Ne0inhk

Stack-Chan机器人完整入门指南:从零开始构建你的可爱机器人伙伴

Stack-Chan机器人完整入门指南:从零开始构建你的可爱机器人伙伴 【免费下载链接】stack-chanA JavaScript-driven M5Stack-embedded super-kawaii robot. 项目地址: https://gitcode.com/gh_mirrors/sta/stack-chan Stack-Chan是一个基于JavaScript驱动的M5Stack嵌入式超级可爱的机器人项目。这个开源项目让你能够轻松构建一个会眨眼、会转头、会说话的智能机器人伙伴。无论你是嵌入式开发新手还是经验丰富的开发者,都能快速上手这个充满乐趣的项目。 🎯 项目核心亮点 超强可爱属性:Stack-Chan拥有多种可爱的面部表情,能够进行眼神交流,让你的机器人充满个性魅力。 模块化设计:项目采用高度模块化的架构,支持多种舵机驱动、面部渲染器和功能扩展,让你的定制变得简单而灵活。 丰富功能生态:支持人脸追踪、语音对话、表情模仿等智能功能,为你的机器人注入灵魂。 📦 项目快速入门 环境准备与代码获取 首先克隆项目仓库到本地: git clone ht

By Ne0inhk
无人机避障——Mid360+Fast-lio感知建图+Ego-planner运动规划(胎教级教程)

无人机避障——Mid360+Fast-lio感知建图+Ego-planner运动规划(胎教级教程)

电脑配置:Xavier-nx、ubuntu 18.04、ros melodic 激光雷达:Livox_Mid-360 结果展示:左边Mid360+Fast-lio感知建图,右边Ego-planner运动规划 1、读取雷达数据并显示 无人机避障——感知篇(采用Livox-Mid360激光雷达获取点云数据显示)-ZEEKLOG博客 看看雷达数据话题imu以及lidar两个话题  2、读取雷达数据并复现fast-lio  无人机避障——感知篇(采用Mid360复现Fast-lio)-ZEEKLOG博客 启动fast-lio,确保话题有输出   由于此处不需要建图,因此不打开rviz,launch文件如下修改: <launch> <!-- Launch file for Livox MID360 LiDAR --> <arg name="rviz&

By Ne0inhk