Как стать автором
Обновить
7
0
Роман @cremnet

iOS Community Lead

Отправить сообщение

Внутренние комьюнити мобильных разработчиков: опыт крупных ИТ-компаний

Время на прочтение21 мин
Количество просмотров2.3K

Внутренние ИТ-комьюнити напрямую влияют на рабочие процессы и выбор технологий в компаниях. Они помогают формировать общие стандарты, наладить обмен знаниями и свободнее перемещаться между проектами.

В июне на конференции Mobius прошел круглый стол, на котором лидеры мобильных комьюнити рассказали про свой опыт построения сообщества. Делимся с вами расшифровкой дискуссии.

Участники:
Роман Голофаев, Почтатех
Екатерина Батеева, Авито
Александр Сычев, СберЗдоровье
Александр Гузенко, Тинькофф
Павел Стрельченко, HeadHunter
Дмитрий Алиев, Райффайзен Банк

Читать далее
Всего голосов 13: ↑11 и ↓2+11
Комментарии0

D3.js. Визуализация графов

Время на прочтение13 мин
Количество просмотров58K
D3.js — это библиотека JavaScript для управления документами, в основе которых лежат данные. D3 помогает претворить данные в жизнь, используя HTML, SVG и CSS. D3 позволяет привязывать произвольные данные к DOM, и затем применять результаты манипуляций с ними к документу.

Для понимания статьи пригодится знание основ D3, и в ней мы рассмотрим реализацию алгоритмов визуализации графа на основе сил (Force-directed graph drawing algorithms), которая в D3 (version 3) имеет название Force Layout. Это класс алгоритмов визуализации графов, которые вычисляют позицию каждого узла, моделируя силу притяжения между каждой парой связанных узлов, а также отталкивающую силу между узлами.

image
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии8

Две красивые задачи по алгоритмам

Время на прочтение4 мин
Количество просмотров68K
На этой неделе я начал читать бакалаврам Академического университета базовый курс по алгоритмам. Начинал я совсем с основ, и чтобы тем, кто с базовыми алгоритмами уже знаком, было чем заняться, я в начале пары сформулировал две, наверное, самые свои любимые задачки по алгоритмам. Давайте и с вами ими поделюсь. Решение одной из них даже под катом подробно расскажу. Но не отказывайте себе в удовольствии и не заглядывайте сразу под кат, а попытайтесь решить задачи самостоятельно. Обещаю, что у обеих задач есть достаточно простые решения, не подразумевающие никаких специальных знаний по алгоритмам. Это, конечно, не означает, что эти решения просто найти, но после пары один из студентов подошёл и рассказал правильное решение первой задачи. =) Если же вам интересно посмотреть на начало курса или порешать больше разных задач — приходите к нам на (бесплатный) онлайн-курс, который начнётся 15 сентября.

Задача 1. Дан массив A длины (n+1), содержащий натуральные числа от 1 до n. Найти любой повторяющийся элемент за время O(n), не изменяя массив и не используя дополнительной памяти.


Сразу поясню. В условии не говорится, что каждое число от 1 до n встречается в массиве, поэтому повторяющихся элементов там может быть сколько угодно (если бы все числа входили по разу, а одно — дважды, то задача была бы гораздо проще). Ограничение на использование дополнительной памяти означает, что нельзя заводить дополнительный массив линейной длины, но можно заводить переменные.

Задача 2. Дана матрица nxn, содержащая попарно различные натуральные числа. Требуется найти в ней локальный минимум за время O(n).


Локальным минимумом матрицы называется элемент, который меньше всех своих четырёх соседей (или трёх, если этот элемент лежит на границе; или двух, если это угловой элемент). Обратите внимание, что от нас требуется линейное по n время, хотя в матрице квадратичное по n число элементов. Поэтому мы предполагаем, что матрица уже считана в память. И нам нужно найти в ней локальный минимум, обратившись лишь к линейному количеству её ячеек.

Под катом — решение первой задачи. Ещё раз призываю вас заглядывать под кат только после того, как порешаете задачу. По второй задаче могу какую-нибудь подсказку сказать.
Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии82

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность