2015-02-05 45 views
1

有没有办法找到像搜索另一个阵列中的阵列 - 算法

a=[1,2,3,4,5,6,7] 
b=[2,3,4] 
c=[2,4,5] 

// b is child of a, but c is NOT child of a. 

嗯,我知道用蛮力的方法,我可以找到另一个数组中的数组另一个数组中的数组。但我想知道是否有任何算法可以帮助我......或者(因为我使用JAVA所以)有没有JAVA中的任何内置功能可以帮助我?

+2

什么是“bootforce”应该是什么意思? – specializt 2015-02-05 20:32:50

+2

也许蛮力? – 2015-02-05 20:33:34

+0

已更新问题 – Junaid 2015-02-05 20:34:50

回答

7

前面已经提到这里:

https://stackoverflow.com/a/3940684/351861

public static int findArray(Integer[] array, Integer[] subArray) 
{ 
    return Collections.indexOfSubList(Arrays.asList(array), Arrays.asList(subArray)); 
} 

Java已经builting特征为,显然。

+0

好!谢谢。只是好奇......你可以让我知道'Collections.indexOfSubList()'后面有什么算法......这样我就可以对这个函数的算法有个好主意 - 因为我非常关心算法。 – Junaid 2015-02-05 20:38:56

+1

当然 - 这是java,毕竟是:http://developer.classpath.org/doc/java/util/Collections-source.html – specializt 2015-02-05 20:40:10

+1

考虑添加回答这个问题,它不适用于像'int []'。由于泛型的工作原理,我们需要使用'Integer []'。 – Pshemo 2015-02-05 20:40:14