Как десятиклассник устроился на работу программистом

Сайт dou.ua опубликовал историю о том, как десятиклассник успешно трудоустроился программистом.   Ярослав Выговский — школьник из провинциального городка, которому так хотелось делать свои игры, что несмотря на отсутствие интернета, хорошей видеокарты и друзей…

Обложка поста

Представьте, что существует квадратная матрица, каждый пиксел которой может быть черным или белым. Разработайте алгоритм поиска максимального субквадрата, у которого все стороны черные

Эту задачу также можно решить двумя способами: простым и сложным. Давайте рассмотрим оба решения. «Простое» решение: O(N4) Мы знаем, что длина стороны самого большого квадрата равна N и существует только…

Введение в ООП с примерами на C#. Часть вторая. Все, что нужно знать о наследовании

Рассказывает Akhil Mittal Вступление В первой статье этой серии мы рассматривали работу разных вариантов реализации перегрузки. В этой части мы сосредоточимся на таком разделе объектно-ориентированного программирования, как наследование.

Сгенерированные случайным образом числа передаются методу. Напишите программу расчета медианы, динамически отслеживающую новые поступающие значения

Одно из возможных решений — использовать две кучи разных приоритетов: максимальная куча (maxHeap) для значений выше среднего и минимальная куча (minHeap) для значений ниже среднего. Это позволит разделить элементы примерно…

Многопоточное программирование в Java 8. Часть первая. Параллельное выполнение кода с помощью потоков

Рассказывает Бенджамин Винтерберг, Software Engineer Добро пожаловать в первую часть руководства по параллельному программированию в Java 8. В этой части мы на простых примерах рассмотрим, как выполнять код параллельно с…

Обложка поста

Найдите самую большую сумму непрерывной последовательности из массива целых чисел, как положительных, так и отрицательных

Это довольно сложная, но очень популярная задача. Давайте решим ее на примере массива: 2 3 -8 -1 2 4 -2 3 Если рассматривать массив как содержащий чередующиеся последовательности положительных и…

Машинное зрение. Введение

Данный пост нашей рубрики будет посвящен общей информации по машинному зрению и его применению. В качестве интересного примера хочу вам продемонстрировать это видео: Здесь используется замечательный пример обнаружения веб-камерой лица человека…

Обложка поста

7 советов для профессионального роста программиста

Против обыкновения, опустим вступительное слово и перейдем сразу к советам. 1. Регулярная практика программирования Постоянно программируйте, если Вы действительно хотите стать профессионалом  мастером своего дела. Вы будете писать ужасные программы…

Обложка поста
Обложка поста

По результатам исследования известно, что 70% людей любят кофе и 80% предпочитают чай. Каковы верхние и нижние границы доли людей, которые одновременно любят кофе и чай?

Не все любители чая положительно относятся к кофе; не все любители котов терпят собак, и не все фанаты одной команды одновременно являются болельщиками другой. Нарисуйте диаграмму Венна на доске или…

У вас есть 25 лошадей. Сколько забегов вам нужно устроить, чтобы определить трех самых быстрых из них?

Вы не можете пользоваться секундомером. В каждом заезде могут участвовать только пять лошадей. Вы можете начать свой ответ с уточнения: спросите интервьюера, следует ли считать «самой быстрой лошадью» ту, которая…

Обложка поста

Доказательство того, что 40-летний алгоритм является оптимальным, будет облегчением для специалистов по вычислительным системам

Пишет Ларри Хардести | Новостное бюро MIT   Сравнение геномов различных видов или различных представителей одного вида — основа большей части современной биологии. Последовательности ДНК, встречающиеся у разных видов, могут…

Обложка поста

Отыщите минимальное число монет, позволяющее дать любую сдачу

Есть два способа интерпретации этого вопроса. Они приводят к разным ответам, и поэтому вам лучше спросить интервьюера, что он имеет в виду (или подготовить оба варианта ответов). Одна интерпретация заключается…

Средства самопознания в Ruby

Практически все современные языки программирования содержат средства, позволяющие во время выполнения программы получить какие-то данные о структуре самой этой программы. В компилируемых языках такие возможности, как правило, ограничены и отключаемы в…