實施例的字節最大序列:查找在兩個字節數組
{54,87,23,87,45,67,7,85,65,65,3,4,55,76, 65,64,5,6,4,54,45,6,4};
{76,57,65,3,4,55,76,65,64,5,6,4,54,45,8,65,66,57,6,7,7,56 ,6,7,44,57,8,76,54,67};
基本上,我有兩個字節[],並且需要在兩個字節中找到最大的相同字節序列。
我已經嘗試了明顯的事情,寫一些代碼,bruteforces結果:
var bestIndex = 0;
var bestCount = 0;
for (var i1 = 0; i1 + bestCount < data1.Length; i1++)
{
var currentCount = 0;
for (var i2 = 0; i2 < data2.Length; i2++)
{
if (data1[i1 + currentCount] == data2[i2])
{
currentCount++;
if (i1 + currentCount == data1.Length)
{
bestCount = currentCount;
bestIndex = i1;
break;
}
}
else
{
if (currentCount > bestCount)
{
bestCount = currentCount;
bestIndex = i1;
}
currentCount = 0;
}
}
if (currentCount > bestCount)
{
bestCount = currentCount;
bestIndex = i1;
}
}
然而,在我的應用程序中的字節數組會大很多,高達GB甚至。所以基本上我需要一個關於如何更有效的提示/代碼。
看起來像np完成我 – Steve
啊,所以你有什麼問題? –
@ rory.ap too slow ofc – Steve