Предположим, у вас есть два массива со значениями от 0 до 256 (размер 10 в выборке, но в действительности может достигать размера 1000)
array1: [1, 20, 50, 17, 250 , 117, 211, 6, 37, 88]
массив 2: [18, 250, 128, 200, 10, 40, 78, 0, 23, 58]
выше смещенных массивов будет быть таким:
массив1: [1, 20, 50, 17, 250, 117, 211, 6, 37, 88]
массив2: [0, 23, 58, 18, 250, 128, 200, 10, 40, 78]
Если вы нарисуете значения на графике X / Y, вы увидите две одинаковые кривые, сдвинутые в X. (значения круглые, поэтому «11-й» значение становится первым значением.)
Программно, каков будет самый быстрый способ выровнять эти значения, чтобы стоимость стала как можно меньше? Я мог бы go пройти все 10 смен одну за другой и посмотреть, какой получится с наименьшей стоимостью, но это будет медленно для массива из 1000 элементов.
Примечание: каждый элемент в массиве может иметь ЛЮБОЕ значение от 0 до 255, и эти два массива могут быть совершенно разными. Мне просто нужно получить смену, обеспечивающую минимально возможную стоимость.