题目:1893.检查是否区域内所有整数都被覆盖

这篇具有很好参考价值的文章主要介绍了题目:1893.检查是否区域内所有整数都被覆盖。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​​题目来源:

        leetcode题目,网址:1893. 检查是否区域内所有整数都被覆盖 - 力扣(LeetCode)

解题思路:

       start 和 end 的取值范围是 1- 50,因此可以使用比特位位数为 64 的 Long 来表示,第 i 位为 1表示 i 在范围内,否则不在。

         获得范围后,通过逻辑运算将所给区间与数组内区间进行逻辑运算,若所给区间内的某个数在数组区间内,对应位变为 1 ,即当且仅当所给区间第 i 位为 1 且数据内区间 第 i 位为 0 时结果为 1 。对应逻辑运算:a&1&(!b)。 最后返回 所给区间是否为 0 即可。  

解题代码:

class Solution {
    public boolean isCovered(int[][] ranges, int left, int right) {
        long range=0;
        long one=1;
        range=((one<<(right)) - (one<<(left-1)));
        for(int i=0;i<ranges.length;i++){
            long temp=((one<<(ranges[i][1])) - (one<<(ranges[i][0]-1)));
            range= (range &((one<<51)-1))&((~temp)) ;
        }
        return range==0;
    }
}
 

总结:

        1<<51 实际为 1<<(51%32) ,因为系统默认 1 为整型,在写代码时,这个报错处理了好长时间。

        官方题解是基于差分数组的思想解题的。新建整数数组,对于数据内的某个区间[ranges[0],range[1]] ,将ranges[0] 对应值加一,range[1]+1 对应值减去一,这样在对所有区间进行相同的操作后,遍历整数数组并求前缀和的过程中,就得到了每个数被包含在多少个 ranges 区间中。在计算时,若某个数包含在 0 个 ranges 区间中但包含在 [left,right] 区间中,返回false。文章来源地址https://www.toymoban.com/news/detail-518448.html


到了这里,关于题目:1893.检查是否区域内所有整数都被覆盖的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于cesium根据地形画区域面积并覆盖在3d表面上

    最近一直在研究在3d地图上添加区域还有车辆路径路线,很是秃然啊!在不断的百度百度再百度,终于有了一套解决办法,先演示一下操作过程, drawLine()方法  drawPlane()方法 下面就来堆代码吧。 前提是开启了地形检测viewer.scene.globe.depthTestAgainstTerrain = true;一般开启会占用一定

    2024年02月11日
    浏览(35)
  • 怎样使用移动cmcc的wifi热点在无线覆盖区域实现无线上网

    在全国范围内,只要无线网卡可以收到移动CMCC信号的地方,用户利用无线终端设备(USB无线网卡、笔记本无线网卡、手机WIFI),都可以使用中国移动提供的帐号和密码登录,在无线网络覆盖的区域均可实现无线上网,但是必须经过一些设置,下面详细介绍。 工具 CMCC、CMCC

    2024年02月06日
    浏览(30)
  • JS判断输入值是否为正整数,判断变量是否为数字

    这篇文章将讨论如何确定一个变量是否代表 JavaScript 中的有效数字。 1.JS中的test是原来是JS中检测字符串中是否存在的一种模式,JS输入值是否为判断正整数代码: 扩展: 附判断数字、浮点的正则表达:  ”^\\\\d+$” //非负整数(正整数 + 0) “^[0-9]*[1-9][0-9]*$” //正整数 “^(

    2024年02月06日
    浏览(79)
  • 白盒测试(路径测试就是设计足够的测试用例,覆盖程序中所有可能的路 径、判定覆盖、条件覆盖)

    重点:白盒测试(路径覆盖、判定覆盖、条件覆盖) ​​​​​​​ 包含了分支覆盖,但与谓词覆盖无关。要求走完所有的路径。如下图,设计测试用力时,有四条路径,需要走完这四条路径。 软件测试的目的: GlenMyers给出的软件测试目的: 1.测试是一个为了发现错误而执

    2023年04月09日
    浏览(34)
  • 利用C语言去判断是否为整数

    整型 int: 例如: int a=-3.2;   ----  输出:-3             int b=4.75;  ----- 输出:4 直接取整数部分!!! 故引出判断方法: C语言中可以有强制转换类型的操作!!!  if (  float    ==    int )   return true;   ps:个人经验,心得理解分享! (仅供参考)

    2024年02月08日
    浏览(41)
  • c语言——输出一个整数的所有因数

      当对这段代码进行分块分析时,可以将其分为以下几个部分: 第一部分: 这部分代码包含了头文件 stdio.h 和 stdlib.h 的引入以及 main() 函数的定义。定义了一个整型变量 number ,用于存储用户输入的整数。还定义了一个整型变量 i ,用于循环计数。 通过 printf 函数打印出提示

    2024年02月12日
    浏览(38)
  • 检查Excel内容是否符合规范

    代码一: 代码二:

    2024年02月03日
    浏览(27)
  • 如何检查是否已安装 .NET

    本文介绍如何检查计算机上安装的 .NET 运行时和 SDK 的版本。 如果你拥有一个集成开发环境(如 Visual Studio 或 Visual Studio for Mac),则可能已安装 .NET。 安装 SDK 便会安装相应的运行时。 如果本文中的任何命令失败,则未安装运行时或 SDK。 有关详细信息,请参阅 Windows、mac

    2024年02月03日
    浏览(45)
  • 【Nginx】检查配置文件是否正确

    1.进入配置nginx路径 2.返回这个就是正确 3.可以重启 其他两种启动方式:

    2024年02月11日
    浏览(39)
  • Java输入任意正整数,判断其以内所有的素数(1000以内的所有素数)

    * 思路1: * 从约数的角度出发 * 5的约数为1,5,和为6 * 13的约数为1,13,和为14 * 17的约数为1,17,和为18 * 18的约数为1,2,3,6,9,18,,和为39 * 所以如果约数的和==i+1;则为素数,否则为偶数 * * 思路2: * 判断约数个数是否大约2 * 2的约数为1,2   约数个数为2 * 11的约数为1,11   约数个

    2023年04月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包