Для первого случая вы можете отсортировать оба массива в O(nlogn)
, а затем для каждого элемента x
в первом массиве найти V-x
во втором массиве, используя алгоритм двоичного поиска / верхней границы.
Его общая сложность все равно будет O(nlogn)
, что меньше O(n*n)
.
Во втором случае вы можете применить аналогичный алгоритм со сложностью O(n*n*log(n))
.