小编Leo*_*dus的帖子

查找重叠区间中的所有区间(重叠和非重叠)

我的问题与这里提出的问题非常相似: 在重叠间隔中查找基本间隔

我喜欢那里给出的最佳解决方案,但由于我需要保留一条额外的关键信息,我需要对算法进行一些调整/进一步解释。作为背景,这些数字是数据库中参与者的年龄范围。我需要计算重叠,以便我可以在重叠的研究实验室之间平均分配参与者,如果没有重叠,我可以将所有参与者分配给那个实验室。

这就是我得到的:

Interval    Lab
{75, 105}    A
{100, 120}   B
{100, 130}   C
Run Code Online (Sandbox Code Playgroud)

这是我想从输入中得到的(所以我知道要查询什么):

Interval    Lab(s)
{75, 100}    A
{100, 105}   A, B, C
{105, 120}   B, C
{120, 130}   C
Run Code Online (Sandbox Code Playgroud)

使用上一个问题中给出的顶级算法,我可以轻松得到嵌套:{75, 100, 105, 120, 130} 这导致间隔:{75, 100} {100, 105} {105, 120} { 120、130}。这很好,但现在我不知道哪些间隔对应哪些实验室(无需再次遍历列表,逐个检查每个实验室,这可能效率低下)。

谁能向我解释如何轻松做到这一点?感谢您的帮助!

algorithm data-structures

4
推荐指数
1
解决办法
1579
查看次数

Word VBA:获取连续标题之间的范围

我查了一些例子,但我不太明白 Range 对象是如何工作的。我试图循环遍历每个标题(第 4 级),并使用一个嵌套循环来遍历标题之间的所有表格。我不知道如何设置该特定范围,因此任何帮助将不胜感激。

    Dim myHeadings As Variant
    myHeadings = ActiveDocument.GetCrossReferenceItems(wdRefTypeHeading)

    For iCount = LBound(myHeadings) To UBound(myHeadings)

      level = getLevel(CStr(myHeadings(iCount)))
      If level = 4 Then

         'This is where I want to set a range between myHeadings(iCount) to myHeadings(iCount+1)
         set aRange = ??


      End If

    Next iCount
Run Code Online (Sandbox Code Playgroud)

vba ms-word

3
推荐指数
1
解决办法
7765
查看次数

标签 统计

algorithm ×1

data-structures ×1

ms-word ×1

vba ×1