Я не ищу ни кода, ни чего-либо для меня. Мне нужна помощь, чтобы начать работу в правильном направлении, но не знаю, как это сделать. Если бы кто-то мог предоставить некоторые ресурсы о том, как решить эти проблемы, я бы очень признателен. Я сидел со своей записной книжкой, и мне трудно разработать алгоритм, который может делать то, что я пытаюсь сделать.Эффективный способ нахождения последовательных чисел по нескольким массивам?
я, вероятно, может сделать:
foreach element in array1
foreach element in array2
check if array1[i] == array2[j]+x
Я считаю, что это будет работать как для прямой и обратной последовательностей, а также для кратных просто проверить array1[i] % array2[j] == 0
. У меня есть список, который содержит int массивы, и я получаю list[index]
(для array1
) и list[index+1]
для array2
, но это решение может быть сложным и длительным быстро, особенно с большими массивами и большим списком этих массивов. Таким образом, я ищу лучшее решение.
Я пытаюсь найти алгоритм поиска последовательных чисел в разных массивах.
Например:
[1, 5, 7]
и [9, 2, 11]
обнаружил бы, что 1
и 2
являются последовательными.
Это также должно работать для нескольких последовательностей в нескольких массивах. Поэтому, если есть третий массив [24, 3, 15]
, он также будет содержать 3
в этой последовательности и продолжит переход к следующему массиву, пока не будет числа, которое соответствует last sequential element + 1
.
Он также должен иметь возможность находить более одной последовательности между массивами.
Например:
[1, 5, 7]
и [6, 3, 8]
обнаружил бы, что 5
и 6
являются последовательными, а также 7
и 8
являются последовательными.
Я также заинтересован в поиске обратных последовательностей.
Например: [1, 5, 7]
и [9, 4, 11]
вернуться бы 5
и 4
являются обратной последовательности.
Пример со всеми:
[1, 5, 8, 11]
и [2, 6, 7, 10]
бы вернуть 1
и 2
являются последовательными, 5
и 6
являются последовательными, 8
и 7
являются обратными последовательными, 11
и 10
являются обратными последовательным.
Он также может перекрываться:
[1, 5, 7, 9]
и [2, 6, 11, 13]
вернется 1
и 2
последовательным, 5
и 6
последовательный, а также 7
и 6
обратной последовательности.
Я также хочу, чтобы расширить это, чтобы проверить номера с разницей x
(выше примеры сверяться с разницей 1
).
В дополнение ко всему, что (хотя это может быть другой вопрос), я также хочу, чтобы проверить коэффициентам
Пример: [5, 7, 9]
и [10, 27, 8]
вернется 5
и 10
кратными, 9
и 27
как кратные.
и номера с одинаковыми местами.
Пример: [3, 5, 7]
и [13, 23, 25]
вернуться бы 3
и 13
и 23
имеют те же самые, цифры.
Сначала сортируйте массивы, затем вы можете легко найти последовательные номера – samgak