public static bool intersect(String[] a,String[] b){
foreach(var x in a){
foreach(var y in b){
if (x.Equals(y)){
return true;
}
}
}
return false;
}
时间复杂度O(m*n)
使用hashset优化
public static bool Intersect(string[] a, string[] b)
{
HashSet set = new HashSet(a);
foreach (var item in b)
{
if (set.Contains(item))
{
return true;
}
}
return false;
}
时间复杂度:O(n + m)
但是需要额外的空间,空间复杂度:O(n)
将第一个数组转换为 HashSet,再利用 O(1) 的查找特性处理。
public static bool intersect(String[] a,String[] b){
foreach(var x in a){
foreach(var y in b){
if (x.Equals(y)){
return true;
}
}
}
return false;
}
时间复杂度O(m*n)
使用hashset优化
public static bool Intersect(string[] a, string[] b)
{
HashSet set = new HashSet(a);
foreach (var item in b)
{
if (set.Contains(item))
{
return true;
}
}
return false;
}
时间复杂度:O(n + m)
但是需要额外的空间,空间复杂度:O(n)
将第一个数组转换为 HashSet,再利用 O(1) 的查找特性处理。