Night_H4nter

Пользователь

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

Night_H4nter

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

Всем утра. ТС пытается в задачи уровня "Easy" с leetcode (не рофлите плс BlessRNG.png ). Вот задача, вот моё решение.

Спойлер: "Уже пофиксил"

Во-первых, какого чёрта g++ кидает предупреждение 

Спойлер:

Я ведь даже приделал костыль (строки 24-25), который в случае, если нет решения, зануляет вектор (да, в задании этого не было, но компилить надо было). В итоге, когда я скомпилил с флагом "-w" и запустил бинарник, получилась полная хрень, потому что программа останавливается уже когда выводит "Enter desired target: ", не доходя до вызова той функции с предупреждением.

Спойлер:

Да, ТС тупенький.

З.ы. Функция splitBySpace частично сворована откуда-то из интернетов.

 

UPD1: Косяк с выходом за пределы вектора во вложенном цикле я уже заметил, ща попытаюсь исправить.

UPD2: Исправил. Теперь программа читает target, но уходит в вечный цикл где-то.

Спойлер:

ZRw4Ffu.png

Код перезалил.

Legatus Legionis

Пользователь

Регистрация: 28.07.2013

Сообщения: 24103

Рейтинг: 17301

Legatus Legionis

Регистрация: 28.07.2013

Сообщения: 24103

Рейтинг: 17301

Это ты себе костыль приделал, компилятору от него ни тепло, ни холодно.

Night_H4nter

Пользователь

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

Night_H4nter

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

Legatus Legionis сказал(а):

Это ты себе костыль приделал, компилятору от него ни тепло, ни холодно.

Нажмите, чтобы раскрыть...

Да я понял, поэтому

Night_H4nter сказал(а):

...я скомпилил с флагом "-w"...

Нажмите, чтобы раскрыть...

Правда, не понял, почему это так.

Just_a_fire

Пользователь

Регистрация: 09.03.2016

Сообщения: 3597

Рейтинг: 3090

Just_a_fire

Регистрация: 09.03.2016

Сообщения: 3597

Рейтинг: 3090

return result; должен происходить уже после выполнения циклов, а не внутри.

 

saw_tooth

Пользователь

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

saw_tooth

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

Очередной человек, сломал ногу об стековую память.

 

Legatus Legionis

Пользователь

Регистрация: 28.07.2013

Сообщения: 24103

Рейтинг: 17301

Legatus Legionis

Регистрация: 28.07.2013

Сообщения: 24103

Рейтинг: 17301

Night_H4nter сказал(а):

Да я понял, поэтому

Правда, не понял, почему это так.

Нажмите, чтобы раскрыть...

Ну смотри, тебе дали парашют и сказали: "Прыгай!". Когда ты прыгнешь и дернешь веревку, он, конечно, раскроется, более того - тот, кто тебе его собирал, заранее в этом уверен, но лично я на твоем месте все равно не чувствовал бы себя в безопасностиdankpepe.png

Night_H4nter

Пользователь

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

Night_H4nter

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

Just_a_fire сказал(а):

return result; должен происходить уже после выполнения циклов, а не внутри.

 

Нажмите, чтобы раскрыть...

NotLikeThis.png Во я довн, серьёзно. Я ведь я ещё думал, что надо это вытащить из условия и циклов. Из условия вытащил, а из циклов - нет. NotLikeThis.png  Классно сплю на ходу. Cпасибо. Но выходу из цикла это не помогло. Шапку обновил.

saw_tooth

Пользователь

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

saw_tooth

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

как то печально у тебя ф-я редуцирования написана:

вот https://godbolt.org/z/WjceXs

ps. или индексы могут быть произвольны? Тогда офс я не прав.

Night_H4nter

Пользователь

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

Night_H4nter

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

saw_tooth сказал(а):

ps. или индексы могут быть произвольны? Тогда офс я не прав.

Нажмите, чтобы раскрыть...

В смысле "произвольны"? Нужно вернуть пару индексов, сумма элементов под которыми равана target. Тут индексы - это именно индексы, то есть номера элементов вектора (0, 1, 2, 3, ..., n).

saw_tooth сказал(а):

как то печально у тебя ф-я редуцирования написана:

вот https://godbolt.org/z/WjceXs

Нажмите, чтобы раскрыть...

Это, конечно, очень мило, но разве другой подход к составлению пар что-то изменит? Ну, я про то, что твой метод, скорее всего, рабочий, но я не понял, что не так с моим.

saw_tooth

Пользователь

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

saw_tooth

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

Night_H4nter сказал(а):

В смысле "произвольны"? Нужно вернуть пару индексов, сумма элементов под которыми равана target. Тут индексы - это именно индексы, то есть номера элементов вектора (0, 1, 2, 3, ..., n).

Нажмите, чтобы раскрыть...

нужно найти рядом стоящие пары индексов или произвольные тоже искать? Например сумму может дать 1-й и 5-й елемент?

Night_H4nter сказал(а):

Это, конечно, очень мило, но разве другой подход к составлению пар что-то изменит? Ну, я про то, что твой метод, скорее всего, рабочий, но я не понял, что не так с моим.

Нажмите, чтобы раскрыть...

я не понял, зачем два цикла что бы пройти одномерный массив.

 

Night_H4nter

Пользователь

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

Night_H4nter

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

saw_tooth сказал(а):

нужно найти рядом стоящие пары индексов или произвольные тоже искать? Например сумму может дать 1-й и 5-й елемент?

Нажмите, чтобы раскрыть...

Да, произвольные, то есть любые два номера.

saw_tooth сказал(а):

я не понял, зачем два цикла что бы пройти одномерный массив.

Нажмите, чтобы раскрыть...

Чтобы проверять каждый с каждым, за исключением повторов из разряда {0,2} и {2,0}.

Berglol

Пользователь

Регистрация: 20.09.2013

Сообщения: 934

Рейтинг: 1736

Berglol

Регистрация: 20.09.2013

Сообщения: 934

Рейтинг: 1736

А на линуксе нет отладчика, чтобы как человек по шагам выполнить и посмотреть, где и что происходит?

Night_H4nter

Пользователь

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

Night_H4nter

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

Berglol сказал(а):

А на линуксе нет отладчика, чтобы как человек по шагам выполнить и посмотреть, где и что происходит?

Нажмите, чтобы раскрыть...

Может и есть, хезе. Но автоматического, скорее всего, нет. Либо есть в каком-то софте, который я не использую (и не очень хочу).

Night_H4nter

Пользователь

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

Night_H4nter

Регистрация: 04.11.2015

Сообщения: 7077

Рейтинг: 2621

Поднятие темы

MAYHEM-

Пользователь

Регистрация: 29.04.2017

Сообщения: 1079

Рейтинг: 230

MAYHEM-

Регистрация: 29.04.2017

Сообщения: 1079

Рейтинг: 230

для начала попробуй вывести то, что ввел