相关疑难解决方法(0)

如何将两个数组之间的交集作为新数组?

在各种情况下我多次遇到这个问题.虽然我对C或Java感到满意,但它对所有编程语言都是通用的.

让我们考虑两个数组(或集合):

char[] A = {'a', 'b', 'c', 'd'};
char[] B = {'c', 'd', 'e', 'f'};
Run Code Online (Sandbox Code Playgroud)

如何将两个数组之间的公共元素作为新数组?在这种情况下,阵列A和B的交点是char[] c = {'c', 'd'}.

我想避免在另一个数组内重复迭代一个数组,这将增加执行时间(A长度为B的长度),这对于大型数组来说太多了.

有没有什么办法可以在每个数组中单独传递以获得公共元素?

c c++ java algorithm

69
推荐指数
5
解决办法
8万
查看次数

从两个数组/切片中获取交集和排除项的最有效方法是什么?

给定两个数组或切片,例如:

a := []int{1, 2, 3, 4, 5}
b := []int{3, 4, 5, 6, 7, 8, 9}
Run Code Online (Sandbox Code Playgroud)

切片可能没有排序,顺序也没有关系。

什么是计算值的最有效方法,以使您最终获得两个切片的公共元素,而一个元素却不存在另一个元素的其余元素,即上面给出的两个数组的返回值将是:

common := []int{3, 4, 5}
inAButNotB := []int{1, 2}
inBButNotA := []int{6, 7, 8, 9}
Run Code Online (Sandbox Code Playgroud)

它很容易计算交叉点,将一个切片转换为地图,然后在一个切片上进行迭代以查看值是否存在。有没有一种方法可以计算同一循环中的其他两个值?

arrays go slice

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

标签 统计

algorithm ×1

arrays ×1

c ×1

c++ ×1

go ×1

java ×1

slice ×1