Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays C:检查数组中的子数组_Arrays_Combinations - Fatal编程技术网

Arrays C:检查数组中的子数组

Arrays C:检查数组中的子数组,arrays,combinations,Arrays,Combinations,我想知道一种在C语言中检查较大数组中是否存在子数组的有效方法,数组将始终按数字顺序排列,例如: x = {1,2,3,4,5,6} y = {3,4} z = {6,7} x中的y=真 x中的z=FALSE以x中的y为例。 首先你可以检查一下 if(y[0] <= x[x.length-1]) //binary search in array x for y[y.length-1] //if that is true u can say that y in x else

我想知道一种在C语言中检查较大数组中是否存在子数组的有效方法,数组将始终按数字顺序排列,例如:

x = {1,2,3,4,5,6}
y = {3,4}
z = {6,7}
x中的y=真


x中的z=FALSE

以x中的y为例。 首先你可以检查一下

if(y[0] <= x[x.length-1])
    //binary search in array x for y[y.length-1]
    //if that is true u can say that y in x else false. 

好办法。一个非常简单的扩展是对子数组两端进行二进制搜索。
var x = new HashSet<int>(Enumerable.Range(1,6)); // [1,2,3,4,5,6]
var y = Enumerable.Range(1,3); // [1,2,3]
var z = Enumerable.Range(6,2); // [6,7]
x.IsSupersetOf(y); // true
x.IsSupersetOf(z); // false