news 2026/4/15 21:05:14

2026-01-20-LeetCode刷题笔记-3314-构造最小位运算数组I

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026-01-20-LeetCode刷题笔记-3314-构造最小位运算数组I

title: 2026-01-20-LeetCode刷题笔记-3314-构造最小位运算数组I
date: 2026-01-20
tags:

  • 算法学习
  • LeetCode
  • 位运算

题目信息

  • 平台:LeetCode
  • 题目:3314. 构造最小位运算数组 I
  • 难度:Medium
  • 题目链接:Construct the Minimum Bitwise Array I

题目描述

给定一个整数数组 nums(题面为素数数组),对每个 nums[i] 寻找最小的非负整数 x,使得x | (x + 1) == nums[i]。若不存在这样的 x,返回 -1。


初步思路

  1. 观察x | (x + 1):它会把 x 的“最右侧第一个 0”变成 1,因此结果必然以连续的 1 结尾。
  2. 若 y = nums[i],设 y 末尾连续 1 的个数为 k,则最小的 x 就是把这段连续 1 中最高位的那个 1 清掉。
  3. 题面为素数数组,因此只有 y=2 为偶数且无解,其他 y 都是奇数可处理。

算法分析

  • 核心:统计 y 的末尾连续 1 的个数 k,然后x = y - (1 << (k - 1))
  • 技巧:x | (x + 1)的结果一定是奇数且以连续 1 结尾
  • 时间复杂度:O(n * k),k 为末尾连续 1 的数量(总体很小)
  • 空间复杂度:O(1)(不含输出)

代码实现(Python)

解法一:统计末尾连续 1

fromtypingimportListclassSolution:defminBitwiseArray(self,nums:List[int])->List[int]:ans=[]fornuminnums:ifnum==2:ans.append(-1)continuek=0whilenum&(1<<k):k+=1ans.append(num-(1<<(k-1)))returnans

解法二:位运算快速定位翻转位

fromtypingimportListclassSolution:defminBitwiseArray(self,nums:List[int])->List[int]:ans=[]fornuminnums:ifnum==2:ans.append(-1)continuet=num^(num+1)bit=(t+1)>>2ans.append(num^bit)returnans

总结与反思

  1. 关键在于“最右侧第一个 0 会被置 1”,因此结果以连续 1 结尾。
  2. 可以用位运算快速定位要翻转的那一位
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 12:08:03

流量累计程序 博途v15编写的西门子流量累计程序,封装好的FB块直接可以拿来用,并且配有视频解说

流量累计程序 博途v15编写的西门子流量累计程序&#xff0c;封装好的FB块直接可以拿来用&#xff0c;并且配有视频解说&#xff0c;轻松学会最近在调试现场流量计项目&#xff0c;发现不少新手对累计流量功能实现总是卡壳。今天就给大家拆解一个我封装好的博途V15流量累计FB块&…

作者头像 李华
网站建设 2026/3/30 16:50:35

深夜调模型的工程师都懂,燃油车和电动车之间总得有个“和事佬“——增程器。今天咱们聊的这个Cruise仿真模型,就是要把这个中间商做出价值

cruise模型&#xff0c;增程汽车仿真模型&#xff0c;串联混动&#xff0c;基于cruise/simulink联合仿真。 实现增程器多点控制策略&#xff0c;及电制动优先的能量回收策略。 提供cruise模型、控制策略文件以及策略说明文档&#xff0c;方便您在模型基础上进行扩展。先看底盘架…

作者头像 李华
网站建设 2026/4/15 13:41:32

双向隔离DCDC仿真之Simulink探索

双向隔离DCDC仿真simulink在电力电子领域&#xff0c;双向隔离DC - DC变换器因其能实现能量双向流动且电气隔离的特性&#xff0c;在众多场合如电动汽车、分布式能源存储系统中有着广泛应用。而Simulink作为一款强大的系统级建模与仿真工具&#xff0c;为双向隔离DC - DC变换器…

作者头像 李华
网站建设 2026/4/13 20:10:20

LabVIEW与通用OCR识别技术的奇妙碰撞

labview.通用OCR识别技术在自动化检测和数据处理的领域中&#xff0c;LabVIEW作为一款功能强大且直观的图形化编程环境&#xff0c;一直备受工程师和开发者的青睐。而通用OCR&#xff08;光学字符识别&#xff09;技术&#xff0c;则为从图像中提取文本信息提供了有力手段。将这…

作者头像 李华