C #: проверка массива для подмассива - PullRequest
0 голосов
/ 07 апреля 2011

Я хотел бы знать эффективный способ в C # проверить, существует ли подмассив в большем массиве, массивы всегда будут в числовом порядке, например:

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

y в x= ИСТИНА

z в х = ЛОЖЬ

Ответы [ 2 ]

0 голосов
/ 07 апреля 2011
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
0 голосов
/ 07 апреля 2011

Рассмотрим пример y в x.
Прежде всего, вы можете проверить

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. 
...