【Leetcoode】2917. 找出数组中的 K-or 值

文章目录

  • 题目
  • 思路
  • 代码
  • 结果

题目

题目链接
给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。

nums 中的 K-or 是一个满足以下条件的非负整数:

只有在 nums 中,至少存在 k 个元素的第 i 位值为 1 ,那么 K-or 中的第 i 位的值才是 1 。
返回 nums 的 K-or 值。

注意 :对于整数 x ,如果 (2i AND x) == 2i ,则 x 中的第 i 位值为 1 ,其中 AND 为按位与运算符。

示例 1
输入:nums = [7,12,9,8,9,15], k = 4
输出:9
解释:nums[0]、nums[2]、nums[4] 和 nums[5] 的第 0 位的值为 1 nums[0] 和 nums[5] 的第 1 位的值为 1 。
nums[0]、nums[1] 和 nums[5] 的第 2 位的值为 1 。
nums[1]、nums[2]、nums[3]、nums[4] 和 nums[5] 的第 3 位的值为 1 。
只有第 0 位和第 3 位满足数组中至少存在 k 个元素在对应位上的值为 1 。因此,答案为 20 + 23= 9 。

示例 2
输入:nums = [2,12,1,11,4,5], k = 6
输出:0
解释:因为 k == 6 == nums.length ,所以数组的 6-or 等于其中所有元素按位与运算的结果。因此,答案为 2 AND 12 AND 1 AND 11 AND 4 AND 5 = 0 。

示例 3
输入:nums = [10,8,5,9,11,6,8], k = 1
输出:15
解释:因为 k == 1 ,数组的 1-or 等于其中所有元素按位或运算的结果。因此,答案为 10 OR 8 OR 5 OR 9 OR 11 OR 6 OR 8 = 15 。

提示
1 <= nums.length <= 50
0 <= nums[i] < 231
1 <= k <= nums.length

思路

我们采用两层循环来解决这个问题。外层循环枚举数组 nums 的每一位(从第 0 位到第 31 位),内层循环枚举数组 nums 中的每个元素。
对于每个元素 nums[j],我们使用位运算来检查其第 i 位是否为 1,即 (nums[j] >> i) & 1。如果至少有 k 个元素 nums[j] 的第 i 位为 1,我们将最终答案加上 2^i。
由于题目中数组 nums 中的元素不超过 2^31,因此外层循环枚举范围为 [0,31)。

代码

class Solution {
public:int findKOr(vector<int>& nums, int k) {int a[32]{};for(int i=0;i<nums.size();++i){int weishu=0;while(nums[i]>0){if(nums[i]&1){a[weishu]++;}weishu++;nums[i]>>=1;}}int x=1;int ans=0;for(int i=0;i<32;++i){if(a[i]>=k){ans+=x;}x<<=1;}return ans;}
};

结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/726184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓手机投屏到win10系统电脑,在电脑上可操作手机

使用scrcpy工具实现 scrcpy 就是通过 adb 调试的方式来将手机屏幕投到电脑上&#xff0c;并可以通过电脑控制您的 Android 设备。它可以通过 USB 连接&#xff0c;也可以通过 Wifi 连接&#xff08;类似于隔空投屏&#xff09;&#xff0c;而且不需要任何 root 权限&#xff0…

openGauss基于存储复制的资源池化安装部署流程

第一步&#xff1a;在主存储上创建资源池化需要的lun&#xff0c;以及远程同步复制xlog卷对应的lun&#xff0c;并且所有lun全部映射到业务计算节点上 1. 登录主集群DeviceManager&#xff0c;选择服务->LUN组->创建 来创建主集群LUN组&#xff1b; 2.登录主集群Device…

会议活动如何高效地执行?邀请媒体到场报道的注意点

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 会议活动高效执行要点与媒体邀请注意事项 一、会议活动高效执行要点&#xff1a; 明确目标&#xff1a;确立清晰、具体的会议目的和预期成果。 详细规划&#xff1a;制定详尽的活动流程…

波奇学Linux:信号的发送和保存

信号的发送的对象是pcb task_struct{ int signal; //0000 0000 .... 0001 进程pcb中存在int型的signal来保存信号&#xff0c;用位图的方式&#xff0c;比特位的0&#xff0c;1表示是否收到信号 比特位位置表示信号的编号。 发信号的本质就是修改task_struct的信号位图对应的…

“词苑千载,群芳竞秀,盛开一枝女儿花”说的是哪位历史人物?2024年3月8日蚂蚁庄园今日答案:李清照

蚂蚁庄园是一款爱心公益游戏&#xff0c;用户可以通过喂养小鸡&#xff0c;产生鸡蛋&#xff0c;并通过捐赠鸡蛋参与公益项目。用户每日完成答题就可以领取鸡饲料&#xff0c;使用鸡饲料喂鸡之后&#xff0c;会可以获得鸡蛋&#xff0c;可以通过鸡蛋来进行爱心捐赠。其中&#…

计算机大数据毕业设计-基于Flask的旅游推荐可视化系统的设计与实现

基于Flask的旅游推荐可视化系统的设计与实现 编程语言&#xff1a;Python3.10 涉及技术&#xff1a;FlaskMySQL8.0Echarts 开发工具&#xff1a;PyCharm 摘要&#xff1a;以Pycharm为旅游推荐系统开发工具&#xff0c;采用B/S结构&#xff0c;使用Python语言开发旅游景点推…

springcloud:3.6测试信号量隔离

服务提供者【test-provider8001】 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 相关接口 测试远程调用&#xff1a;http://localhost:8001/payment/index 服务消费者【test-consumer-resilience4j8004】 Openfeign远程调用消费者搭建 文章地址http://t…

26.基于springboot + vue实现的前后端分离-就业管理系统

项目介绍 系统分为管理员、企业、求职者三个角色 管理员&#xff1a; 登录、个人中心、学生信息管理、企业信息管理、岗位分类管理、学历信息管理、友情链接管理、新闻资讯管理、收藏管理、招聘信息管理、应聘信息管理、求职者信息管理 企业&#xff1a; 注册、登录、个人…

从 HPC 到 AI:探索文件系统的发展及性能评估

随着 AI 技术的迅速发展&#xff0c;模型规模和复杂度以及待处理数据量都在急剧上升&#xff0c;这些趋势使得高性能计算&#xff08;HPC&#xff09;变得越来越必要。HPC 通过集成强大的计算资源&#xff0c;比如 GPU 和 CPU 集群&#xff0c;提供了处理和分析大规模数据所需的…

【开源物联网平台】FastBee使用EMQX5.0接入步骤

​&#x1f308; 个人主页&#xff1a;帐篷Li &#x1f525; 系列专栏&#xff1a;FastBee物联网开源项目 &#x1f4aa;&#x1f3fb; 专注于简单&#xff0c;易用&#xff0c;可拓展&#xff0c;低成本商业化的AIOT物联网解决方案 目录 一、将java内置mqtt broker切换成EMQX5…

你未必知道的CSS阴影

你未必知道的CSS阴影 假设我们有这样的需求&#xff0c;给图片或元素周围设置阴影效果那么大家一定会联想到 box-shadow 属性&#xff0c;但其实 实现的效果是不对的 可以看到左边是需求效果&#xff0c;而右边使用了 box-shadow 后&#xff0c;效果并不是我们想要的那样 解…

03.axios数据提交和错误处理

一.axios常用请求方法和数据提交 1. 想要提交数据&#xff0c;先来了解什么是请求方法 请求方法是一些固定单词的英文&#xff0c;例如&#xff1a;GET&#xff0c;POST&#xff0c;PUT&#xff0c;DELETE&#xff0c;PATCH&#xff08;这些都是http协议规定的&#xff09;&am…

基于Python实现银行卡识别

在本文中将介绍如何使用Python和深度学习技术来实现银行卡识别功能。银行卡识别是一个在金融、安全等领域具有重要应用的问题&#xff0c;将使用深度学习模型来实现银行卡图像的识别和分类。 目录 引言数据集准备预处理和特征提取模型选择与训练模型评估与性能优化部署与应用 引…

pytest-allure报告生成

pytest生成allure报告步骤&#xff1a; 下载allure&#xff0c;配置allure报告的环境变量&#xff1a;把allure-2.13.7\bin 配置到环境变量path路径 验证&#xff1a;在dos窗口和pycharm窗口分别验证&#xff1a;allure –version 2. 生成临时的json报告 在pytest.ini配置文…

Wireshark——捕获localhost(127.0.0.1)对应端口的数据包

前提&#xff1a;安装的Wireshark要有Npcap。 步骤 打开Wireshark&#xff0c;选择Adapter for loopback traffic capture&#xff0c;在过滤器中填写需要监听的端口&#xff0c;再双击Adapter for loopback traffic capture。 点击左上角&#xff0c;开始捕获。

STM32学习7 按键扫描

STM32学习7 按键扫描 一、实验电路介绍二、按键GPIO初始化三、扫描原理1. GPIO引脚配置2. 状态轮询3. 按键状态检测4. 循环扫描的优缺点优点&#xff1a;缺点&#xff1a; 四、一次扫描与持续扫描五、代码实现1. 头文件定义2. 函数实现3. 主体函数 一、实验电路介绍 本实验使用…

Linux 之三:CentOS7 目录结构 和 日期及时区设置

Linux 目录 以下是对这些目录的解释&#xff1a; /bin&#xff1a;bin是Binary的缩写, 这个目录存放着最经常使用的命令。/boot&#xff1a; 这里存放的是启动Linux时使用的一些核心文件&#xff0c;包括一些连接文件以及镜像文件。/dev &#xff1a; dev是Device(设备)的缩写…

docker安装和使用kafka

1. 启动zookeeper Kafka依赖zookeeper, 首先安装zookeeper -p&#xff1a;设置映射端口&#xff08;默认2181&#xff09; docker run --name zookeeper \--network app-tier \-e ALLOW_ANONYMOUS_LOGINyes \--restartalways \-d bitnami/zookeeper:latest2. 启动kafka docker…

STM32各外设初始化步骤

1、GPIO初始化步骤 1、使能GPIO时钟 2、初始化GPIO的输入/输出模式 3、设置GPIO的输出值或获取GPIO的输入值 GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStruct.GPIO_Mode GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin…

青少年如何从零开始学习Python编程?有它就够了!

文章目录 写在前面青少年为什么要学习编程 推荐图书图书特色内容简介 推荐理由粉丝福利写在最后 写在前面 本期博主给大家带来一本非常适合青少年学习编程的图书&#xff0c;快来看看吧~ 青少年为什么要学习编程 青少年学习编程&#xff0c;就好比在他们年轻时就开始掌握一种…