如何获得两个范围的重叠范围

2024-03-11

我在区间 [1-15] 中有以下范围

我想找到人 1 和人 2 之间的重叠范围。

人物 1 [1, 3] [5, 10] 人物 2 [2, 4] [8, 15]

这里我应该得到一个范围列表,其中 [2,3], [8, 10]。

到目前为止我发现的是先按 person1 的范围循环,然后按 person2 的范围循环,然后针对每个范围的每个元素循环,然后使用条件测试。 这个解决方案并不令我满意,因为它的复杂度为 O(n)。元素范围越多,我的算法就会对每个范围的每个元素进行循环,如果我想查看这些范围之间的切面,这将需要时间

人1:[100000; 150000]和[90000; 140000]。 人2:[105000; 110000]和[130000; 140050]

请注意,我的代码中的范围表示为:

public class Range{
    public int Start {get;set;}
    public int End {get;set;}
}

那么找到重叠范围的最有效方法是什么?

任何帮助,将不胜感激。

PS:这里有类似的问题如何在Python中找到范围重叠? https://stackoverflow.com/questions/6821156/how-to-find-range-overlap-in-python但我不明白 python 代码。


对范围的开始和结束进行排序...保留有关其是否是范围开始或结束的信息...对于您的示例,您将得到以下信息:

1 start
2 start
3 end
4 end
5 start
8 start
10 end
15 end

现在循环这些点并保留一个计数器.. +1 表示开始 -1 表示结束。该计数器是任意时间重叠段的数量。如果您想要边界,则需要在每次增加或减少计数器时进行测试。如果将其从 1 增加到 2,则这是重叠范围的开始。重叠范围的结束将是当您将计数器从 2 减少到 1 时

Martin

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获得两个范围的重叠范围 的相关文章

  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • 未提供参数时如何指定 C# System.Commandline 行为?

    在我的控制台应用程序中 当未提供控制台参数时 将执行我指定列表 在本例中为参数 3 的任何处理程序 调用该处理程序时 布尔参数设置为 false 但对我来说 根本不调用它更有意义 如何防止这种情况发生并显示帮助文本 using System
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 为什么 int8_t 和用户通过 cin 输入显示奇怪的结果[重复]

    这个问题在这里已经有答案了 一小段代码让我发疯 但希望你能阻止我跳出窗外 看这里 include
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 当我们想要返回对象的引用时,为什么我们在赋值运算符中返回 *this 而通常(而不是 this)?

    我正在学习 C 和指针 我以为我理解了指针 直到我看到这个 一方面 asterix 运算符是解引用的 这意味着它返回值所指向的地址中的值 而与号 运算符则相反 它返回值存储的地址记忆 现在阅读有关赋值重载的内 容 它说 我们返回 this因
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • 如何分别删除有关 Firebase/Analytics 和 swizzing 的 Firebase 警告和控制台消息?

    不知道为什么 firebase 会发出警告说我没有包含Firebase Analytics虽然我不需要它 我在用着Firebase Messaging尽管 我知道消息传递正在按预期工作 那么 我该如何删除这样的警告 Pods Firebas
  • Composer - 使用本地存储库

    我是一名 Composer 初学者 我试图使一个项目依赖于另一个项目 而这两个项目仅存在于我的本地计算机上 我的库项目 ProjectA 中的composer json是 name project util type library 我在这
  • Haskell 中是否有一个内置函数可以获取列表中大小为 n 的所有连续子序列?

    例如 我需要一个函数 gather Int gt a gt a gather n list where gather 3 Hello Hel ell llo ol 我有一个有效的实现 gather Int gt a gt a gather
  • 如何为mysql中的一组记录提供相同的序列号

    我是 mysql 的新手 我在购物车表中有如下记录 id code 1 100 2 101 3 102 4 100 5 100 6 101 我的例外输出如下 id code serial number 1 100 1 2 101 2 3 1
  • Windows 7 Aero 主题进度条错误?

    我在 Windows 7 上遇到了我认为是进度条错误的问题 为了演示该错误 我创建了一个带有按钮和进度条的 WinForm 应用程序 在按钮的 单击 句柄中 我有以下代码 private void buttonGo Click object
  • 如何测量 Linux 中的真实 CPU 使用率?

    我知道有类似的工具top and ps用于测量 CPU 使用率 但他们测量 CPU 使用率的方法是测量空闲任务未运行的时间 因此 例如 即使 CPU 由于缓存未命中而出现停顿 这些工具仍然会认为 CPU 被占用 然而 我想要的是分析工具在停
  • Unity3D,“击倒”类型的灯光对象?

    在 Unity 场景中 想象一下 一个大型滑动物体 可能是 集装箱 或 沙发 由于某种原因滑动 路上有一些2m高的轻质木棍轻轻地插在地上 在现实生活中 木棍会站在那里 首先 这在 PhysX 中实际上很难实现 当大物体击中它们时 大物体将是
  • 确定 DynamicObject 成员访问的预期类型

    是否可以确定动态成员访问需要什么类型 我试过了 dynamic foo new MyDynamicObject int x foo IntValue int y int foo IntValue 并且在TryGetMember截距GetMe
  • KDiff3 中的手动差异对齐

    KDiff3 中的 添加手动差异对齐 似乎没有做任何事情 在线文档相当稀疏 这个功能真的有用吗 好吧 我明白了 要在 KDiff3 中添加手动差异对齐 将光标置于一个子窗口中某些文本的开头 按 Ctrl Y 将光标置于另一个子窗口中某些文本
  • Apache FOP 和 Arial 字体

    我的 XSL 样式使用 Arial 字体
  • 如何在 NHibernate 中将 ICriteria 与 Enum 属性一起使用

    您好 我想编写一个 FindByExample object o 方法 所以我尝试了这个 public IList
  • 如何使用php查看受保护文件夹中的图像?

    我的网站上有一个受密码保护的目录 带有 htaccess 其中包含 jpg 文件 我不希望任何人都可以直接访问这些 jpg 但我想允许 php 脚本显示 jpg 文件 这样的事情可能吗 对于那些想知道为什么我想要这个的人 我有一个注册表单
  • 如何在 Java 代码中访问弹簧执行器健康检查的结果?

    我已经使用端点 actuator health 设置了一个运行状况检查执行器 当您访问 URL 时 它会为我的应用程序生成类似以下内容的内容 status UP app status UP db status UP 有没有办法可以使用 Sp
  • 以常见方式更改seaborn图和matplotlib库图的大小

    from pylab import rcParams rcParams figure figsize 10 10 这适用于直方图 但不适用于因子图 sns factorplot 仍然显示默认大小 sns factorplot Pclass
  • 从终端向 Clojure 应用程序发送消息

    如何向正在运行的 clojure 应用程序发送消息 例如 如果我有一个特定的变量或标志 我想在 uberjar 运行时从终端设置 这可能吗 一种方法是读取应用程序中可以更改的文件 但这听起来很笨拙 提前致谢 实现此目的的一种方法是让您的应用
  • FORTIFY_SOURCE:FD_SET:文件描述符 >= FD_SETSIZE。调用 abort()

    我是一名安卓程序员 今天我运行一个 Android 应用程序 当时我遇到了此类错误 FORTIFY SOURCE FD SET 文件描述符 gt FD SETSIZE 调用 abort 因此 如果有人知道这个问题的答案 请回复我 您的进程打
  • 如何设置 WCF 自托管 REST 服务?

    我正在尝试从我的计算机自行托管一些 WCF RESTful 服务 以供本地网络上的计算机使用 我没有使用 WCF 的经验 而且在这方面基本上是个新手 我创建了一个非常基本的 精简的控制台应用程序 看看是否可以让它工作 static void
  • 保持 Windows Mobile 应用程序在待机模式下运行

    我有一个简单的 Windows Mobile 应用程序 用于记录 GPS 坐标 每 5 分钟一次 问题是只要屏幕正常 应用程序就可以正常工作 打开后 一旦手机进入待机模式 应用程序就会停止工作 当我打开设备时 应用程序再次开始工作 我该怎么
  • 如何按数组内的属性查询嵌套对象?

    我收集了数千个 可能 30 40k 文档 其结构 大大简化 如下 propA 123 obj prop1 a prop1 b prop1 c propB 456 我如何查询以找到所有文档obj prop1 b 我似乎无法弄清楚如何检查数组属
  • 如何获得两个范围的重叠范围

    我在区间 1 15 中有以下范围 我想找到人 1 和人 2 之间的重叠范围 人物 1 1 3 5 10 人物 2 2 4 8 15 这里我应该得到一个范围列表 其中 2 3 8 10 到目前为止我发现的是先按 person1 的范围循环 然