Благодарю за комментарий! Вы правы, этот момент я несколько замял под ковёр. В предпоследней версии сравнение second_array[l] < second_array[j] используется для поддержания возрастания подпоследовательности, однако в этом случае можно сравнивать и second_array[l] < first_array[i], т.к. внутри этого блока элементы первого и второго массивов равны. В последней версии при заполнении строки i любой элемент second_array будет сравниваться с first_array[i] на равенство. То есть при равенстве first_array[i] == second_array[j] неравенства first_array[i] > second_array[k] и second_array[j] > second_array[k] будут эквивалентны. Поэтому, достаточно сравнения с first_array[i], потому что при встрече равного элемента из второго массива мы будем уверенны в возрастании подпоследовательности. Надеюсь, что смог подробнее объяснить этот момент!
Благодарю за комментарий! Вы правы, этот момент я несколько замял под ковёр.
В предпоследней версии сравнение
second_array[l] < second_array[j]
используется для поддержания возрастания подпоследовательности, однако в этом случае можно сравнивать иsecond_array[l] < first_array[i]
, т.к. внутри этого блока элементы первого и второго массивов равны.В последней версии при заполнении строки
i
любой элементsecond_array
будет сравниваться сfirst_array[i]
на равенство. То есть при равенствеfirst_array[i] == second_array[j]
неравенстваfirst_array[i] > second_array[k]
иsecond_array[j] > second_array[k]
будут эквивалентны. Поэтому, достаточно сравнения сfirst_array[i]
, потому что при встрече равного элемента из второго массива мы будем уверенны в возрастании подпоследовательности.Надеюсь, что смог подробнее объяснить этот момент!