LINUX.ORG.RU

История изменений

Исправление crutch_master, (текущая версия) :

Твой алгоритм тоже медленный.

Нормальный.

Сортировка не поможет

Поможет.

она будет по разным колонкам и соответственно в разном порядке

Какая разница в какую сторону проходить массив, главное чтобы порядок был

всё равно придётся брутфорсить

Да не придётся.

a > 5
b < 17
Записи: 1:[3,4], 2:[5,7], 3:[7,10], 4:[9,15], 5:[14,15], 6:[18, 35], 7:[47, 50]
a: 5,7,9,14,18,47 (ключи: 2,3,4,5,6,7)
b: 15,10,7 (ключи 5,4,3)
Дальше обходим сразу оба массива, b - с конца (развернул, чтобы было понятнее)
i*
[2,3,4,5,6,7]
j*
[3,4,5]
Если i < j в двигаем i, иначе двигаем j, если равны - пушим в результат. И так пока кто-то из них не закончится.
Это очень частный случай, поэтому оно так мб и не работает.

Исходная версия crutch_master, :

Твой алгоритм тоже медленный.

Нормальный.

Сортировка не поможет

Поможет.

она будет по разным колонкам и соответственно в разном порядке

Какая разница в какую сторону проходить массив, главное чтобы порядок был

всё равно придётся брутфорсить

Да не придётся.

a > 5
b < 17
Записи: 1:[3,4], 2:[5,7], 3:[7,10], 4:[9,15], 5:[14,15], 6:[18, 35], 7:[47, 50]
a: 5,7,9,14,18,47 (ключи: 2,3,4,5,6,7)
b: 15,10,7 (ключи 5,4,3)
Дальше обходим сразу оба массива, b - с конца (развернул, чтобы было понятнее)
i*
[2,3,4,5,6,7]
j*
[3,4,5]
Если i < j в двигаем i, иначе двигаем j, если равны - пушим в результат. И так пока кто-то из них не закончится.