首页 > 其他分享 >Leetcode 3171. Find Subarray With Bitwise AND Closest to K

Leetcode 3171. Find Subarray With Bitwise AND Closest to K

时间:2024-06-02 21:58:33浏览次数:22  
标签:搞定 Closest Bitwise ans Subarray prev Find

1. 解题思路

这道题坦率地说让我感觉很挫败,又一次没有自力搞定,是看了大佬们的答案才搞定的……

知道比没有搞定更难受的是什么吗?是连续两三周好像都没有自力搞定第四题。如果还有的话,那就是有2000号人都把这题搞定了,我依然没搞定……

知道还有什么能比这个更糟心的吗?是我想了一个“优雅”的思路,想要优化执行效率,结果发现还是超时,然后优化了半天之后,只多通过了一个测试样例……真的是心态爆炸……

但是这还不是最坑爹的,最坑爹的是,看了大佬们的解答之后发现,他们居然是暴力解答的,是我一开始就排除掉了的最简单但是最暴力的解法,结果还一次过了……

啊啊啊啊啊!!!!!

Anyway,牢骚发了半天,还是说回到这道题本身吧,我就不说我的算法了,直接说题目的正解吧,就是一个滑动窗口,用一个集合来保存以当前元素为最后一个元素时前方所有的sub array的与结果,然后遍历一轮即可。

原则上来说,这个最坏会是一个 O ( N 2 ) O(N^2) O(N2)的算法复杂度的解法,不知道为啥这个居然可以通过,真的是服了……

2. 代码实现

给出python代码实现如下:

class Solution:
    def minimumDifference(self, nums: List[int], k: int) -> int:
        prev = set()
        ans = math.inf
        for x in nums:
            prev = set([x] + [x & p for p in prev])
            ans = min(ans, min(abs(x-k) for x in prev))
        return ans

提交代码评测得到:耗时1360ms,占用内粗31.6MB。

标签:搞定,Closest,Bitwise,ans,Subarray,prev,Find
From: https://blog.csdn.net/codename_cys/article/details/139395889

相关文章

  • WSL error "it can't find the path specified"
    https://huaweicloud.csdn.net/6356079bd3efff3090b58e82.html用powershell输入以下命令检查是否有路径无效:·@($env:path-split";").ForEach({if($_){$result='MISSING|';if(Test-Path-path$_){$result='OK|'};-join($result,'......
  • find命令详解
    find命令查找文件路径。http://www.server110.com/linux/201309/1457.htmlhttp://www.cnblogs.com/bigbean/p/3669739.html1.基本用法:$find/-name文件名$find/-name'azure-armrest*'#部分名字匹配例如azure-armrest-0.3.9#findver1.dver2.d-nam......
  • find_sys_call_table和kallsysms_lookup_name的区别
    find_sys_call_table和kallsyms_lookup_name都可以用于查找内核符号,但它们的具体作用和使用场景有所不同。以下是两者的详细对比:1.find_sys_call_table作用find_sys_call_table是一种通过遍历内核内存或者其他方式来手动查找系统调用表地址的技术。这种方法通常在某些情况......
  • Cannot find module ‘./bpm/analysis‘
    错误信息“Cannotfindmodule‘./bpm/analysis’”通常表明Node.js无法在指定路径中找到模块。以下是一些排查和解决此问题的步骤:检查路径:确认路径./bpm/analysis是否正确,并指向模块所在的正确目录。路径是区分大小写的,因此请确保大小写与实际目录和文件名匹配。......
  • db.collection.find(query, projection)
    Selectsdocumentsinacollectionandreturnsa cursor totheselecteddocuments.ParameterTypeDescriptionquerydocumentOptional.Specifiesselectionfilterusing queryoperators.Toreturnalldocumentsinacollection,omitthisparameterorpass......
  • [LeetCode] 2903. Find Indices With Index and Value Difference I
    Youaregivena0-indexedintegerarraynumshavinglengthn,anintegerindexDifference,andanintegervalueDifference.Yourtaskistofindtwoindicesiandj,bothintherange[0,n-1],thatsatisfythefollowingconditions:abs(i-j)>=index......
  • 运维系列&go系列:cannot find package “xxx“ in any of的通用解决方案
    cannotfindpackage“xxx“inanyof的通用解决方案目录问题背景解决通用解决方案这个问题遇到频率还是比较高,这次总结出来,希望能让更多的人脱离苦海!如有帮助,欢迎留下足迹哦!问题背景作者的问题:提示找不到的是工程内部自定义的包名今天出了个奇怪的事情,编译......
  • 探索Linux中的神奇工具:深入了解find命令
    探索Linux中的神奇工具:深入了解find命令在Linux系统中,find命令是一个强大且灵活的工具,用于在文件系统中查找符合条件的文件和目录。本文将详细介绍find命令的基本用法和一些常见选项,帮助读者更好地理解和运用这个命令。了解find命令find命令用于在指定目录及其子目录中查找......
  • The configuration for MySQL Server 8.0.27 has failed You can find more informati
    遇见这种情况,作者当时也是痛苦万分,网上找了许许多多的方法试了好多次都不行。分析问题出现这种问题是因为我们之前安装过但是没有安装完全就取消了,电脑里面已经存储了。重新安装的时候把安装位置和数据存放的位置路径全部使用英文,例如:之前我的安装路径:D:\用户\app\mysql......
  • currentTuningFileInfoRef.current = useMemo(() => { return tuningFileOptionsMemo?
    在React中,useMemo和useEffect都是Hooks,但它们各自有不同的用途和适用场景。上述代码片段使用了useMemo来memoize(记忆化)一个计算结果,确保只要依赖项(tuningFileOptionsMemo和currentTuningFileId)不变,返回的引用也不会改变。这样做可以避免在每次渲染时都进行查找操作,从而提......