Leetcode2275:按位与结果大于零的最长组合

news/2025/1/14 18:19:40/

题目描述:

对数组 nums 执行 按位与 相当于对数组 nums 中的所有整数执行 按位与 。

  • 例如,对 nums = [1, 5, 3] 来说,按位与等于 1 & 5 & 3 = 1 。
  • 同样,对 nums = [7] 而言,按位与等于 7 。

给你一个正整数数组 candidates 。计算 candidates 中的数字每种组合下 按位与 的结果。

返回按位与结果大于 0 的 最长 组合的长度

代码思路:

  1. 初始化计数器数组
    • 创建一个长度为 30 的数组 cnt,用于记录每个二进制位上 1 出现的次数。选择长度为 30 是基于假设输入整数不会超过 30 位(2^30 - 1),这样可以确保数组索引不越界。如果输入整数可能超过 30 位,则需要调整数组长度。
  2. 遍历候选整数
    • 对于 candidates 列表中的每一个整数 x,执行以下操作:
  3. 检查每个二进制位
    • 对整数 x,通过 x.bit_length() 获取其二进制表示的长度(即最高位的索引值加 1)。然后,从最低位(索引 0)开始,到最高位,逐一检查每个二进制位。
    • 使用位运算 (x >> y) & 1 来检查第 y 位是否为 1。这里,x >> y 表示将 x 右移 y 位,& 1 用于检查最低位是否为 1。如果结果为 1,说明第 y 位上是 1。
  4. 更新计数器
    • 如果发现第 y 位是 1,则将 cnt[y] 加 1,表示第 y 位上 1 的出现次数增加。
  5. 找出最大值
    • 遍历完所有候选整数后,cnt 数组中存储了每个二进制位上 1 出现的次数。使用 max(cnt) 找出这个数组中的最大值,即为某一位上 1 出现次数最多的值。
  6. 返回结果
    • 将最大值返回作为结果。

代码实现:

class Solution:def largestCombination(self, candidates: List[int]) -> int:cnt = [0] * 30for x in candidates:for y in range(x.bit_length()):if (x >> y) & 1:cnt[y] += 1return max(cnt)

 

 


http://www.ppmy.cn/news/1562839.html

相关文章

Nginx | 解决 Spring Boot 与 Nginx 中的 “413 Request Entity Too Large“ 错误

关注:CodingTechWork 引言 在 Web 开发中,413 Request Entity Too Large 是一种常见的 HTTP 错误,它指示客户端请求的实体(例如文件或数据)超出了服务器允许的最大大小。对于使用 Spring Boot 和 Nginx 的应用程序来说…

WPF ——开源MVVM模式框架简介

文章目录 Avalonia核心功能1.1 跨平台支持1.2 XAML 支持MVVM支持丰富的控件库样式和主题高性能渲染插件和扩展框架核心组件平台抽象层应用程序生命周期优势安装步骤Xamarin常用控件3.2 Xamarin.Essentials 常用 API3.3 Xamarin.Forms 数据绑定3.4 Xamarin.Forms 导航3.5 Xamari…

【微服务】面试 2、负载均衡

Ribbon 负载均衡流程 Spring Cloud 中负载均衡组件是 Ribbon,在使用 Feign 等组件发起远程调用时,底层会调用 Ribbon 进行负载均衡。以订单服务(order service)调用用户服务(user service)为例,…

SQL多表联查、自定义函数(字符串分割split)、xml格式输出

记录一个报表的统计,大概内容如下: 多表联查涉及的报表有:房间表、买家表、合同表、交易表、费用表、修改记录表 注意:本项目数据库使用的是sqlserver(mssql),非mysql。 难点1:业主信息&#…

用户界面的UML建模13

􀂄 Concrete Presentation Model 包中所包含的是,在Environment 包中与表示层框架模式中的《apm》类相对应的那些类。 8 结论 本文使用了一个图书馆系统的案例,来论述了关于用户界面的建模。通过使用统一建模语言来对应用系统进行建模&…

Level DB --- filter_block

filter_block里面包含FilterBlockBuilder和FilterBlockReader,他们是Level DB中读、写Filter(Level DB --- BloomFilterPolicy-CSDN博客)重要的类,相当于是FIlter的一个Wrapper,将Filter有组织地写(序列化&…

【网络安全 | 漏洞挖掘】通过监控调试模式实现价值$15k的RCE

未经许可,不得转载。 前言 你是否曾遇到过这样一种情况:明明发现了一个可疑的端点,直觉告诉你它可能存在漏洞,但却无法确定其背后的逻辑,更不用说利用它了?在这篇文章中,我将分享一种技术,它让我的黑盒测试变得如同半白盒测试。这种方法帮助我发现了多个漏洞,并最终实…

WMS仓库管理系统,Vue前端开发,Java后端技术源码(源码学习)

一、项目背景和建设目标 随着企业业务的不断扩展,仓库管理成为影响生产效率、成本控制及客户满意度的重要环节。为了提升仓库作业的透明度、准确性和效率,本方案旨在构建一套全面、高效、易用的仓库管理系统(WMS)。该系统将涵盖库…