CODING_INTERVIEWS Telegram 198
Forwarded from Ivan Finaev
Навеяно дебагом бинпоиска в сегодняшнем видео. Мне кажется, когда его пишешь, нужно на бумажке прописать инварианты:
* что такой успех?
* как этот успех связан с левыми и правыми границами в начале, до запуска цикла
* как условие на левую и правую границу сохраняется во время цикла

Кроме инвариантов ещё нужно вручную проверить поведение алгоритма, когда между левой и правой границей мало элементов — меньше трех четырех. После каждой итерации расстояние между итерациями должно уменьшаться. Я, чтобы быть уверенным, что это так, начиная с отрезка длиной четыре элемента и меньше, проверяю ветвления вручную, на бумажке.

В итоге у меня таким получилось решение этой задачи на плюсах (не претендую на скорость, я больше беспокоился о том, чтобы все прошло без ошибок с минимальным количеством тестовых запусков). Стрессы тесты не писал, но решение на литкоде проходит
https://gist.github.com/IvanFin/4578b9a4e8be6be0adcedac67696e39b
👍4👎2👏1



tgoop.com/coding_interviews/198
Create:
Last Update:

Навеяно дебагом бинпоиска в сегодняшнем видео. Мне кажется, когда его пишешь, нужно на бумажке прописать инварианты:
* что такой успех?
* как этот успех связан с левыми и правыми границами в начале, до запуска цикла
* как условие на левую и правую границу сохраняется во время цикла

Кроме инвариантов ещё нужно вручную проверить поведение алгоритма, когда между левой и правой границей мало элементов — меньше трех четырех. После каждой итерации расстояние между итерациями должно уменьшаться. Я, чтобы быть уверенным, что это так, начиная с отрезка длиной четыре элемента и меньше, проверяю ветвления вручную, на бумажке.

В итоге у меня таким получилось решение этой задачи на плюсах (не претендую на скорость, я больше беспокоился о том, чтобы все прошло без ошибок с минимальным количеством тестовых запусков). Стрессы тесты не писал, но решение на литкоде проходит
https://gist.github.com/IvanFin/4578b9a4e8be6be0adcedac67696e39b

BY 💻 Coding interviews in a nutshell


Share with your friend now:
tgoop.com/coding_interviews/198

View MORE
Open in Telegram


Telegram News

Date: |

A new window will come up. Enter your channel name and bio. (See the character limits above.) Click “Create.” While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc. Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.” How to create a business channel on Telegram? (Tutorial) According to media reports, the privacy watchdog was considering “blacklisting” some online platforms that have repeatedly posted doxxing information, with sources saying most messages were shared on Telegram.
from us


Telegram 💻 Coding interviews in a nutshell
FROM American