找到按位或最接近K的子数组 logTrick leetcode周赛400

题目:

题解:

使用灵神教的logTrick方法。

logTrick方法可以在O( nlog v )的时间复杂度内得到所有子数组按位and 或者 or的结果。

代码:

int minimumDifference(vector<int>& nums, int k) {
        int ans=0x3f3f3f3f;
        for(int i=0,I=nums.size();i<I;i++){
            ans=min(ans,abs(nums[i]-k));
            for(int j=i-1;j>=0;j--){
                if(nums[j]==(nums[j]|nums[i]))break;
                nums[j]=nums[j]|nums[i];
                ans=min(ans,abs(k-nums[j]));
            }
        }
        return ans;
    }

相关推荐

  1. 面试算法6/400-和至少为 K 数组

    2024-07-17 04:04:01       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 04:04:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 04:04:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 04:04:01       58 阅读
  4. Python语言-面向对象

    2024-07-17 04:04:01       69 阅读

热门阅读

  1. PHP 包含

    2024-07-17 04:04:01       17 阅读
  2. 扫地机器人如何解决室内空气污染问题

    2024-07-17 04:04:01       18 阅读
  3. python 概述

    2024-07-17 04:04:01       17 阅读
  4. ChebNetII

    ChebNetII

    2024-07-17 04:04:01      14 阅读
  5. Linux工具应用_PERL

    2024-07-17 04:04:01       21 阅读
  6. 系统调用和库函数作业知识点整理

    2024-07-17 04:04:01       18 阅读
  7. 2024.7.16 刷题总结

    2024-07-17 04:04:01       17 阅读
  8. 【03】计算圆形面积

    2024-07-17 04:04:01       17 阅读