我正在尝试查找一个数组中由两个或多个相邻数字组成的范围的索引和长度,该数组可能也存在于另一个数组中(但可能不是从相同的索引开始)。示例:
var source = new[] {6, 15, 8, 1, 2, 4, 11, 21};
var target = new[] {8, 1, 2, 4, 15, 11, 21, 6};这两个数组不同,但都有两个相等的范围,即两个相邻的数字[1, 2]和[11, 21]。我想写一个函数,它可以找到源数组中这些范围的起始索引和长度(在本例中,第一个范围的索引为3,长度为2,第二个范围的索引为6,长度为2)。
我最初的方法可能是编写嵌套循环,迭代两个数组中的每个字段并比较它们,但这很快就会成为大型数组的性能杀手。是否有任何有用的LINQ API或其他方法来查找这些值?
https://stackoverflow.com/questions/51361975
复制相似问题