В своем путешествии по смене карьеры и переходу на штатного разработчика я пытался найти время, чтобы писать код везде и всегда. Это означает перед работой, после работы, иногда во время работы (конечно, только во время простоя), в выходные, когда мой сын спит, и т. Д. Вы поняли.
Чтобы бросить себе вызов и заставить свой мозг работать в режиме программиста, когда время ограничено, я часто ищу в Google что-то вроде «____ популярных вопросов на собеседовании» и заполняю пустое поле «массив», «строка», «сортировка» алгоритм »или что-то еще, над чем я думаю, что мне нужно поработать.
Сегодня я наткнулся на один, который мне повеселился - «Как найти все пары целых чисел в массиве, сумма которых равна заданному числу?».
Давай подумаем. У нас есть массив, состоящий как из положительных, так и из отрицательных чисел (назовем его «обр»), и нам нужно найти все пары, которые равны данному числу (назовем его «n ).
Как и в случае с большинством вопросов, я уверен, что для этого есть несколько решений, но мы решим его очень простым способом. Кто-то назвал бы это «грубой силой», я назову это «понятным».
Во-первых, нам нужно создать пустой массив для хранения нашего результата. Назовем это «комбо». Затем нам нужно найти способ сравнить каждое число в массиве с каждым другим числом в массиве (включая его самого). Похоже, сейчас самое время использовать вложенный цикл for! Таким образом, мы можем выполнить полную итерацию по массиву для каждого индекса и найти любые совпадения.
Затем нам нужно настроить средство проверки, чтобы видеть, если каждый элемент по выбранному индексу в массиве складывается с нашим входным числом. Мы можем легко добиться этого, сравнив сумму двух наших переменных (в данном случае arr [i] и arr [j]) с нашим входным числом.
Если наш оператор IF находит совпадение, мы продолжим и вставим подмассив, содержащий два числа, в наш массив «комбо».
Наконец, мы записываем наш результат в консоль, проверяем, работает ли наша программа должным образом, а затем возвращаемся к нашему обычному расписанию рабочего дня, прежде чем кто-либо это заметит. Вечеринка!