我想知道C#中一种有效的方法来检查一个子数组是否存在于一个更大的数组中,数组总是按数字顺序排列,例如:
x = {1,2,3,4,5,6}
y = {3,4}
z = {6,7}
y in x = TRUE
z in x = FALSE
答案 0 :(得分:0)
在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.
答案 1 :(得分:0)
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