C#判断两组数字是否有重复的区间
时间: 2024-11-05 16:31:29 浏览: 10
C#实现判断一个时间点是否位于给定时间区间的方法
在C#中,判断两组数字是否有重复的区间可以使用集合和迭代的方式来实现。首先,你可以将每组数字转换为HashSet,因为HashSet不允许有重复元素,所以如果添加后的大小与原数组长度相等,说明数组中无重复元素。然后,你可以遍历两个集合,检查它们的交集,如果有非空交集,那么就存在重复区间。
以下是简单的步骤:
1. 定义两个HashSet,如`HashSet<int> set1`和`HashSet<int> set2`。
2. 分别将两组数字添加到各自的集合中:`set1.UnionWith(arr1)` 和 `set2.UnionWith(arr2)`。
3. 检查两个集合的并集是否等于每个集合本身:`if (set1.Count == arr1.Length && set2.Count == arr2.Length)`。
4. 如果并集大小不等于各自原数组长度,说明有重复区间,返回true;反之,返回false。
```csharp
public bool HaveOverlap(int[] arr1, int[] arr2)
{
HashSet<int> set1 = new HashSet<int>();
HashSet<int> set2 = new HashSet<int>();
set1.UnionWith(arr1);
set2.UnionWith(arr2);
return set1.Count != arr1.Length || set2.Count != arr2.Length;
}
```
阅读全文