|
154 / 153 / 29
Регистрация: 21.05.2010
Сообщений: 338
|
||||||||||||||||
Понимание рекурсии31.10.2013, 16:46. Показов 1193. Ответов 10
Метки нет (Все метки)
Доброго всем времени суток! В статье на Хабре "Как я завалил собеседование в Twitter" заинтересовала задачка. Для решения её сначала хочу найти крайний максимальный элемент с левой стороны и максимальный с правой (границы ямы). Т.к. справа у нас 2 элемента подряд со значениями 7 (элементы с индексами 6 и 7) - то мне нужно вернуть индекс 6. Но в моём коде, найдя индекс 6 и дойдя до return - вместо выхода из рекурсивного вызова метода - снова выполняет его. Не могу понять, почему. Вот собственно код:
p.s.: я понимаю, что на данном этапе решение задачи не совсем правильное, ибо "ям" может быть более одной, но в данный момент меня интересует корректность отработки рекурсивных методов. Чего-то я не понимаю, видимо. Добавлено через 12 минут в методе GetRight
0
|
||||||||||||||||
| 31.10.2013, 16:46 | |
|
Ответы с готовыми решениями:
10
Понимание программирования Помощь в понимание Классов |
|
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
|
|
| 31.10.2013, 17:57 | |
|
сложно вникнуть без комментариев в коде. к слову сказать, на хабре решение все равно неправильное. можно за один проход так:
весь воздух делаем водой. потом начинаем с верхнего ряда удаляем воду слева, потом справа. с каждым удаленным кубом уменьшаем счетчик воды. остается та, которая не может вытечь, а значение счетчика - ее количество
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 31.10.2013, 18:00 | |||
|
0
|
|||
|
154 / 153 / 29
Регистрация: 21.05.2010
Сообщений: 338
|
|
| 31.10.2013, 18:01 [ТС] | |
|
sezada, меня сейчас интересует не решение задачи, а почему, дойдя до строки 46, снова переходим к строке 44, притом значение i увеличивается.
0
|
|
|
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
|
|||
| 31.10.2013, 18:09 | |||
|
Добавлено через 6 минут
0
|
|||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 31.10.2013, 18:11 | ||
|
Можете показать простой пример массива, для которого не сработает?
0
|
||
|
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
|
|
| 31.10.2013, 18:14 | |
|
3 2 5 4 4 5 3 1
пропустит единичку воды по индексу 1 (считая от 0), если взять воду только между максимумами по индексам 2 и 5
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 31.10.2013, 18:25 | ||
|
Если на бумаге, то объем будет 0 1 0 1 1 0 0 0, если по алгоритму, то тоже 3.
0
|
||
|
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
|
|
| 31.10.2013, 19:27 | |
|
0
|
|
|
154 / 153 / 29
Регистрация: 21.05.2010
Сообщений: 338
|
|
| 01.11.2013, 12:31 [ТС] | |
|
Почему же при return i; не выходит из метода? Вернее, выходит и снова туда же... Под отладчиком хорошо видно и мне не понятно.
0
|
|
|
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
|
||
| 01.11.2013, 15:39 | ||
|
0
|
||
| 01.11.2013, 15:39 | |
|
Помогаю со студенческими работами здесь
11
Понимание анонимных функций
Не понимание полиморфизма и статического поля на примере представленного кода Система шифрования Вижинера: есть понимание сути, нет понимания кода Рекурсии Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|