Size: a a a

Эликсир и Вунш

2019 October 11

w

wi11son in Эликсир и Вунш
Максим Кузьмин
Не так стыдно оквадратиться как окубиться)
Ме вариант Игоря нравится больше
источник

IE

Igor Evstifeev in Эликсир и Вунш
Andrey Krivko
В смысле? Там все ок вроде бы
при j = i  он берет первое число допустим 1 и суммирует его с arr[j] которое тоже будет 1
источник

AK

Andrey Krivko in Эликсир и Вунш
Igor Evstifeev
при j = i  он берет первое число допустим 1 и суммирует его с arr[j] которое тоже будет 1
А ну да, второй цикл должен идти от следующего элемента массива
источник

IE

Igor Evstifeev in Эликсир и Вунш
ага
источник

IE

Igor Evstifeev in Эликсир и Вунш
wi11son
Ме вариант Игоря нравится больше
который? ))) я уже потерялся
источник

AK

Andrey Krivko in Эликсир и Вунш
Так превращаем n^2, в n*log(n); что и будет финальной сложностью
источник

w

wi11son in Эликсир и Вунш
h ={}
ar.each_with_index do |i, a|
 ar[i, -1].each do |b|
   sum = a+b
   h[sum] ||= 0
   h[sum] += 1
 end
end
h.keys.select{|k| h[k] == 1}
источник

w

wi11son in Эликсир и Вунш
ага
источник

w

wi11son in Эликсир и Вунш
схематично
источник

AK

Andrey Krivko in Эликсир и Вунш
Не нужен последний селект
источник

AK

Andrey Krivko in Эликсир и Вунш
Лишняя итерация
источник

w

wi11son in Эликсир и Вунш
почему ?
источник

МК

Максим Кузьмин in Эликсир и Вунш
Andrey Krivko
Лишняя итерация
Уникальные суммы не найти иначе
источник

AK

Andrey Krivko in Эликсир и Вунш
Внутри внутреннего цикла нужно сделать array << sum if h[sum] == 1
источник

AK

Andrey Krivko in Эликсир и Вунш
Этого будет достаточно и избавляет от лишнего прохода
источник

w

wi11son in Эликсир и Вунш
и удалять если уже больше?
источник

w

wi11son in Эликсир и Вунш
сложность будет выше, чем лишний раз пробежаться
источник

МК

Максим Кузьмин in Эликсир и Вунш
Andrey Krivko
Внутри внутреннего цикла нужно сделать array << sum if h[sum] == 1
Эмм, пока последний цикл внутренний не пройдет, не будет известно, точно ли h[sum]==1
источник

AK

Andrey Krivko in Эликсир и Вунш
Нет, мы заводим hashmap для провероки и дополнительный массив для результата
источник

w

wi11son in Эликсир и Вунш
ну вот я считаю, получаю сумму 5
источник