paper help# Biology - 生物学
w*o
1 楼
求两个数组的union 和intersection的时候,
如果数组里面有重复的数,在怎么处理?
比如 a[] = {3 2 5 7 8 5 6 5 9} //有三个5
b[]= {11 9 5 4 3 5} //有两个5
1. 最简单的方法,从a里取每个数a[i],然后在b里做sequential search,看a[i]是否
在b里,这样的话,交集里面就会有三个5,
可是如果取b里的数,到a里面去找的,交集里会有两个5.
到底结果里应该有几个5?
同样并集里,有三个5还是两个5?
2. 如果先把a, b排序,然后用binary search的方法,也是有方法一里面的问题
3. 如果先把a, b排序,然后用两个指针,遍历两个数组,如果遇到两个数相同的话,
把两个指针都向前移动一步,这样的话可以避免上面的问题。
大家说说这个简单的问题该如何解决?
谢谢!
如果数组里面有重复的数,在怎么处理?
比如 a[] = {3 2 5 7 8 5 6 5 9} //有三个5
b[]= {11 9 5 4 3 5} //有两个5
1. 最简单的方法,从a里取每个数a[i],然后在b里做sequential search,看a[i]是否
在b里,这样的话,交集里面就会有三个5,
可是如果取b里的数,到a里面去找的,交集里会有两个5.
到底结果里应该有几个5?
同样并集里,有三个5还是两个5?
2. 如果先把a, b排序,然后用binary search的方法,也是有方法一里面的问题
3. 如果先把a, b排序,然后用两个指针,遍历两个数组,如果遇到两个数相同的话,
把两个指针都向前移动一步,这样的话可以避免上面的问题。
大家说说这个简单的问题该如何解决?
谢谢!