news 2026/6/10 17:48:56

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/6/10 0:27:50

2026-01-20-牛客每日一题-小红删数字

title: 2026-01-20-牛客每日一题-小红删数字 date: 2026-01-20 tags: 算法学习牛客动态规划 题目信息 平台&#xff1a;牛客题目&#xff1a;小红删数字难度&#xff1a;中等题目链接 题目描述 给定长度为 n 的数字序列 a1…an&#xff0c;每一步在相邻两个数之间选择加号或…

作者头像 李华
网站建设 2026/6/9 22:32:14

如何选择EOR名义雇主的2026年度TOP5最佳推荐榜单

在全球化加速的背景下&#xff0c;EOR名义雇主服务成为企业进入国际市场的有效工具。选择合适的EOR名义雇主并不简单&#xff0c;企业需从多方面进行考量。首先&#xff0c;评估服务商在目标市场的经验和合规性非常重要&#xff0c;他们能为企业提供具体法律指导&#xff0c;确…

作者头像 李华
网站建设 2026/6/10 15:33:22

ChIP/CUT结果解读之Motif分析,充分利用组学数据

ChIP-seq&#xff08;染色质免疫沉淀测序&#xff09;和近年来大火的CUT&Tag&#xff08;靶向剪切与标记技术&#xff09;是表观遗传学研究的“黄金工具”&#xff0c;核心作用是精准定位蛋白质&#xff08;如转录因子、组蛋白修饰&#xff09;在基因组上的结合位点。而在C…

作者头像 李华
网站建设 2026/6/10 15:34:44

ARM嵌入式开发代码实践——LED灯闪烁(C语言版)

嵌入式LED控制程序详解 - 从汇编启动到C语言控制一、整体架构概览这个项目是一个完整的嵌入式系统程序&#xff0c;包含&#xff1a;汇编启动代码&#xff08;start.S&#xff09;&#xff1a;系统初始化和异常向量表C语言主程序&#xff08;main.c&#xff09;&#xff1a;硬件…

作者头像 李华
网站建设 2026/6/10 16:02:50

蜘蛛表格团队:七年坚守免费多维表,我们用技术为每一份梦想铺路

2017年盛夏的西安&#xff0c;古城墙的阴影隔绝了部分酷暑&#xff0c;咖啡馆内的美式醇香与年轻人的热议碰撞交织。当指尖在Excel表格上反复拖拽却屡屡陷入协作困境时&#xff0c;一个直击行业痛点的疑问在讨论中愈发清晰&#xff1a;为何高效的协作工具&#xff0c;总要被付费…

作者头像 李华