gpt4 book ai didi

c# - 从 c# 2.0 中的一系列值中获取不同值的高效逻辑

转载 作者:太空狗 更新时间:2023-10-29 23:09:27 25 4
gpt4 key购买 nike

我有一个范围列表。每个范围都有一个从和到值,这意味着该值可以在该范围之间。例如,如果范围是 (1,4),则值可以是 1、2、3 和 4。现在,我需要在给定的范围列表中找到不同的值。下面是示例代码。

class Program
{
static void Main(string[] args)
{
List<Range> values = new List<Range>();
values.Add(new Range(1, 2));
values.Add(new Range(1, 3));
values.Add(new Range(1, 4));
values.Add(new Range(3, 5));
values.Add(new Range(7, 10));
values.Add(new Range(7, 8));

// Expected Output from the range of values
//1,2,3,4,5,7,8,9,10
}
}
class Range
{
public Range(int _form, int _to)
{
from = _from;
to = _to;
}
private int from;

public int From
{
get { return from; }
set { from = value; }
}

private int to;

public int To
{
get { return to; }
set { to = value; }
}

}

我可以遍历每个范围并找到不同的值。但如果有人能提供一种有效的方法,那将会很有帮助。

最佳答案

  • 对于少量间隔,直接的方法应该可以解决问题。
  • 如果大多数区间相互折叠,您可以执行合并它们的初步步骤以减少测试数量
  • 如果不相交的区间数量很多,构建一个 Interval Tree .这是一个link到一篇带有 Java 代码示例的文章。

关于c# - 从 c# 2.0 中的一系列值中获取不同值的高效逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11866705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com