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

力扣10.9

3171. 找到按位或最接近 K 的子数组

给你一个数组 nums 和一个整数 k 。你需要找到 nums 的一个
子数组
,满足子数组中所有元素按位或运算 OR 的值与 k 的 绝对差 尽可能 小 。换言之,你需要选择一个子数组 nums[l..r] 满足 |k - (nums[l] OR nums[l + 1] ... OR nums[r])| 最小。

请你返回 最小 的绝对差值。

子数组 是数组中连续的 非空 元素序列。

数据范围

  • 1 <= nums.length <= 105
  • 1 <= nums[i] <= 109
  • 1 <= k <= 109

分析

参考灵神的解析

代码

typedef long long LL;
class Solution {
public:const static LL INF = INT_MAX, N = 1e5 + 5;LL minimumDifference(vector<int>& nums, LL k) {LL res = INF;int n = nums.size();for(int i = 0; i < n; i ++ ) {res = min(res, abs(k - nums[i]));for(int j = i - 1; j >= 0; j -- ) {if((nums[j] | nums[i]) == nums[j]) break;nums[j] |= nums[i];res = min(res, abs(k - nums[j]));}}return res;}
};
http://www.lryc.cn/news/457119.html

相关文章:

  • @RequestMapping指定请求方式的用法
  • 卷积神经网络细节问题及知识点
  • 【图论】(一)图论理论基础与岛屿问题
  • PhotoMaker部署文档
  • 双十一买什么最划算?2024年双十一选购攻略汇总!
  • Oracle架构之物理存储之审计文件
  • DAY6 面向对象
  • 代码随想录 (三)—— 哈希表部分刷题
  • 搜维尔科技:使用 SenseGlove Nova 2 远程操作机械手,实现了对鸡蛋的精细操控
  • Mybatis是什么?优缺点分别有哪些?
  • opencascade鼠标拖拽框选功能
  • docker 部署 postgres
  • 【重学 MySQL】五十、添加数据
  • 硬货!Zabbix监控AIX系统服务案例
  • python常见面试题
  • 低功耗接地故障控制器D4145
  • SpringMVC的处理流程
  • SpringBoot统一日志框架
  • vue-live2d看板娘集成方案设计使用教程
  • springboot接口如何支持400并发量
  • Verilog中的: `+:` 和 `-:`
  • 为何四次挥手要等待2MSL
  • C++——模拟实现list
  • React中useState、useReducer与useRef
  • ReGCL Rethinking Message Passingin Graph Contrastive Learning
  • ubutun安装ffmpeg
  • Vue的基本用法及模板语法
  • Redis数据库与GO完结篇:redis操作总结与GO使用redis
  • 《重生到现代之从零开始的C语言生活》—— 动态内存管理
  • 四、Spring Boot集成Spring Security之登录登出业务逻辑