news 2026/4/15 9:09:58

leetcode 3314(位运算,lowbit)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 3314(位运算,lowbit)

3314: 构造最小位运算数组Ⅰ

思路1:枚举

class Solution { public: vector<int> minBitwiseArray(vector<int>& nums) { vector<int> ans(nums.size(),-1); for(int i=0;i<nums.size();i++){ int x=nums[i]; for(int j=1;j<x;j++){ int y=j|(j+1); if(y==x){ ans[i]=j; break; } } } return ans; } };

思路2:位运算,lowbit

特别地,只包含最小元素的子集,即二进制最低1及其后面的 0,也叫 lowbit,可以用s&-s算出。

正数:原码 = 反码 = 补码

s = 101100 ~s = 010011 //按位取反(反码) (~s)+1 = 010100 //补码=反码+1(负数,符号位为1) s & -s = 000100 //lowbit

例如 x=100111,那么 x ∣ (x+1)=100111 ∣ 101000=101111。

可以发现,x ∣ (x+1) 的本质是把二进制最右边的 0 置为 1。

反过来,如果已知 x ∣ (x+1)=101111,那么倒推 x,需要把 101111 中的某个 1 变成 0。满足要求的 x 有:100111 101011 101101 101110
其中最小的是 100111,也就是把 101111 最右边的 0 的右边的 1 置为 0。

无解的情况:由于 x ∣ (x+1) 最低位一定是 1(因为 x 和 x+1 中必有一奇数),所以如果 nums[i] 是偶数(质数中只有 2),那么无解。

对本题:把101111取反(~x),得 010000,其 lowbit=10000 (t&-t),右移一位得 1000。把 101111 与 1000 异或,即可得到 100111。

class Solution { public: vector<int> minBitwiseArray(vector<int>& nums) { vector<int> ans(nums.size(),-1); for(int i=0;i<nums.size();i++){ int x=nums[i]; if(x==2) continue; int t=~x,s=(t&-t)>>1; //右移一位 ans[i]=x^s; //按位异或 } return ans; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 12:33:20

2026 年招聘新趋势:AI 人岗匹配模型成找到最合适候选人的核心工具

在企业招聘中&#xff0c;HR 常陷入 “简历符合但能力不匹配”“入职后短期离职” 的困境&#xff0c;仅靠人工筛选或单一关键词匹配&#xff0c;难以找到真正适配的候选人。而招聘中如何利用 AI 人岗匹配模型找到最合适候选人&#xff0c;已成为突破这一困境的关键。本文将从 …

作者头像 李华
网站建设 2026/4/10 8:54:12

破解人岗错配:AI 智能解析简历在招聘初筛中的应用技巧

在企业招聘过程中&#xff0c;HR 常被海量简历筛选耗时长、人岗匹配精准度低的问题困扰&#xff0c;人工提取简历信息不仅效率低下&#xff0c;还易遗漏关键内容或因主观判断出现偏差。而 AI 智能解析简历技术&#xff0c;正是解决这些招聘初筛痛点的关键。本文将从技术原理、实…

作者头像 李华
网站建设 2026/4/10 14:19:24

Altium原理图与FPGA引脚规划协同设计实践

从原理图到FPGA引脚&#xff1a;如何在Altium中实现高效协同设计你有没有遇到过这样的场景&#xff1f;FPGA工程师说&#xff1a;“这个DDR信号我只能放Bank 15&#xff0c;不然时序不收敛。”而PCB工程师回&#xff1a;“可你在Bank 15用了1.8V&#xff0c;但我们的DDR3要求1.…

作者头像 李华
网站建设 2026/4/10 7:32:21

基于PINN求解裂纹扩展问题的优化开发

基于PINN求解裂纹扩展问题的优化开发 摘要 本文系统阐述了基于物理信息神经网络(Physics-Informed Neural Networks, PINN)求解裂纹扩展问题的优化开发方法。裂纹扩展问题是断裂力学和工程结构安全评估中的核心问题,传统的数值方法如有限元法在处理复杂裂纹扩展问题时面临…

作者头像 李华
网站建设 2026/4/11 0:29:24

打造智能化 ECS 故障分析 Agent:从创建到实战

前言 在微服务架构中,ECS 服务故障排查往往需要在多个 AWS 控制台之间切换,查看日志、指标、事件,耗时且容易遗漏关键信息。本文将介绍如何使用 Kiro CLI 创建一个专业的 ECS 故障分析 Agent,实现一键自动化诊断。 一、Agent 设计理念 1.1 核心目标 自动化:输入服务名称…

作者头像 李华
网站建设 2026/4/6 19:57:21

计算机毕业设计springboot飞机票预定系统 基于SpringBoot的航空客运订票平台设计与实现 融合Vue+SpringBoot的在线航班座位预约系统

计算机毕业设计springboot飞机票预定系统yr7f205a &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。当“说走就走”成为年轻人出行的默认节奏&#xff0c;传统柜台与电话订票早已跟…

作者头像 李华