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

力扣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.kler.cn/news/342173.html

相关文章:

  • 【数据结构】6道经典链表面试题
  • Ubuntu 更换内核版本
  • 单目三d重建学习笔记2024
  • 从开发效率到查询性能:JPA 和 MyBatis 在企业系统中的完美结合
  • Git 工作区、暂存区和仓库
  • 跟《经济学人》学英文:2024年10月05日这期 Workouts for the face are a growing business
  • python画图|步进图基本教程
  • 【C语言系统编程】【第三部分:网络编程】3.3 实践与案例分析
  • 解读 AI 获客关键要素,开启营销新未来
  • 架构设计(14)分布式系统的CAP,BASE与ACID
  • JavaScript 网页设计案例详解
  • xtu oj 四位数
  • Mybatis-Plus分页和根据日期查询数据
  • HTML5+Css3(背景属性background)
  • 力扣1930. 长度为3的不同回文子序列
  • App推广新利器:Xinstall带你直达指定页面
  • PVC刻字膜高精度模切应用
  • 超像素提取加svm训练,鼠标点击选择标签(左键为正样本,右键为负样本)
  • 新个性化时尚解决方案!Prompt2Fashion:自动生成多风格、类型时尚图像数据集。
  • 垃圾回收(GC)是什么?深入理解Java(以主要版本为主线)的垃圾回收机制/策略,垃圾回收器的选择、实际案例分析