当前位置: 首页 > news >正文

LeetCode 数组中两个元素的最大与题解

LeetCode 数组中两个元素的最大与题解

题目描述

给定一个非空整数数组,找出数组中最大的按位与结果(即所有元素进行按位与运算的结果)。

示例

输入:nums = [16,8,4]
输出:0

输入:nums = [4,6,7]
输出:4

解题思路

方法:位运算

思路

  • 使用位运算来解决这个问题。
  • 找出所有数字的公共前缀。
  • 从左到右遍历每一位,如果这一位上所有数字都是 1,则该位为 1。
  • 否则,该位为 0。
  • 最终结果就是公共前缀对应的数字。

复杂度分析

  • 时间复杂度:O(n * k),其中 n 是数组长度,k 是整数的位数。
  • 空间复杂度:O(1)。

代码实现

方法:位运算

# 数组中两个元素的最大与(位运算) def largest_xor(nums): result = 0 for i in range(31, -1, -1): result = (1 << i) + 1 if i == 31 else 0 break mask = 0 for i in range(31, -1, -1): mask |= (1 << i) seen = set() for num in nums: seen.add(num & mask) if len(seen) > 1: mask ^= (1 << i) return mask # 测试 def test_largest_xor(): nums = [16, 8, 4] print(largest_xor(nums)) # 输出:0 nums = [4, 6, 7] print(largest_xor(nums)) # 输出:4 if __name__ == "__main__": test_largest_xor()

测试用例

测试用例 1:基本情况1

输入:nums = [16,8,4]
输出:0

测试用例 2:基本情况2

输入:nums = [4,6,7]
输出:4

总结

数组中两个元素的最大与是一个经典的位运算问题,它可以通过位运算来高效地解决。

位运算的核心思想是:找出所有数字的公共前缀。

掌握位运算的使用方法,对于解决类似的问题非常重要。

http://www.jsqmd.com/news/794132/

相关文章:

  • 逆向Soul App客户端证书:从定位到解密,打通SSL双向校验抓包之路
  • 把“贪吃蛇”做成塔防Boss,这个Unity模板是怎么设计的?附完整变现思路
  • esptool闪存擦除机制深度解析:从硬件限制到工程实践的最佳策略
  • AI智能体企业级身份管理:基于Active Directory的agent-directory部署与实战
  • 大数据 机器学习毕业设计项目选题建议
  • Vagrant封装工具:快速搭建Claude API本地开发环境
  • Letta框架:全栈AI应用开发,从模型集成到部署上线的完整解决方案
  • 避坑指南:用Python爬携程旅游信息时,如何应对页面结构变化和反爬?
  • 社区Helm Charts仓库实战:从设计理念到应用部署全解析
  • 【c++面向对象编程】第3篇:类与对象(二):构造函数与析构函数
  • 法律智能体构建指南:从LLM与RAG技术到合同审查实战
  • LeetCode 或运算题解
  • 从零到精通的EtherCAT DS402控制模式选择指南:轮廓位置、同步位置、速度模式到底怎么选?
  • 西安石油大学仪光实践协会4月活动机械蝴蝶台灯
  • AI原生用户体验设计:为什么92%的传统交互团队在SITS 2026评估中首轮淘汰?
  • PDF编程的艺术:从基础到实践
  • Blender 3MF插件:5分钟掌握3D打印文件格式转换的完整方案
  • AI智能体记忆系统实战:基于向量数据库构建持久化记忆库
  • python机器学习毕设方向帮助
  • ATE PCB组装:半导体测试中的精密工艺与挑战解析
  • 联发科2012年崛起:从功能机到智能机的转型与挑战
  • 智能体网格(Agent Mesh)架构解析:构建大规模异构智能体协同网络
  • 告别‘瞎跑’:智能车竞赛中线性CCD动态曝光与浮动中心算法的实战调参心得
  • 用Cursor+ChatGPT实现代码报错的自动分析与修复
  • 2012年Accellera标准演进:SystemC、UCIS与AMS如何重塑EDA设计流程
  • 无线充电技术:从手机标配到多场景应用的挑战与机遇
  • TTS听觉校对法:技术写作质量提升的工程实践指南
  • AI编程智能体评估平台CodingAgentExplorer:从原理到实践的系统评测指南
  • 【c++面向对象编程】第4篇:类与对象(三):拷贝构造函数与深浅拷贝问题
  • Java对接海康威视人脸考勤机实战:Spring Boot整合SDK获取刷卡流水记录