int FindSingleNumber(const vector<int>& nums) {
int result = 0;
for (int n : nums) {
result ^= n;
}
return result;
}
Такой способ позволяет решить за O(n) по времени и O(1) по памяти.
Это возможно с помощью оператора XOR — исключающее ИЛИ.
Числа состоят из байтов, а байты из битов. XOR работает с битами двух чисел и возвращает в результате третье число. Операция производится поразрядно по одному биту из каждого числа.
XOR вернёт 1, если только один бит равен 1. Получится вот так:
A B C
0 0 0
1 0 1
0 1 1
1 1 0
На примере вот такого вектора: {12, 11, 12} рассмотрим что будет происходить. Покажем только 4 первых бита:
Изначально result равен нулю, значит:
0 ^ 12 — 0000 ^ 1100 = 1100
1100 ^ 11 — 1100 ^ 1011 = 0111
0111 ^ 12 — 0111 ^ 1100 = 1011
В конце получился 1011, это 11 в двоичной системе счисления.
Первое число просто присвоилось переменной result, а далее биты другого числа вычитались из него. После второго числа в переменной было число 0111 — число 7. Если бы не условие, что все числа будут повторяться дважды, кроме одного, то наличие числа 7 в векторе всё бы испортило и превратило число назад в 0. Второе повторение того же числа (необязательно даже последовательное) отменяет первую операцию. А так как одно число повторяется только один раз, то его никто не компенсировал, и оно осталось храниться в результате.
Ответ! Если трое друзей — математики, то они могут решить проблему с помощью теории игр, комбинаторики или экономики. А ещё лучше — применить сразу всё: https://www.youtube.com/watch?v=fSwcGqFV2RM. Справедливое решение с точки зрения математики объясняют в последнем фрагменте.
Нужно разделить стоимость первого участка дороги на троих, второго — на двоих оставшихся, а за последний кусочек платит только третий человек. Тогда первый заплатит 600/3=200 рублей, второй 600/3+600/2=500 рублей, а третий 600/3+600/2+1800=2300 руб. @BanaKingи @NSISбыли правы.
Ориентироваться можно на лендинг: https://practicum.yandex.ru/high-education. Там актуальные программы + будем добавлять новые. «Фронтенд и мобильная разработка» — пример программы, на которую набирали в 2023, как пример, чему учим
Спасибо, что поделились мнением! Вашу обратную связь по вводной части передаём команде курса в работу :) Что касается программы — азов действительно много, т.к. курс рассчитан на новичков в профессии, но мы распределили темы и нагрузку так, чтобы успеть осознать материал, а потом отработать знания на практике. Плюс можно будет попасть на стажировку и получить реальный опыт.
Добрый день! Консультации длятся 30 минут. Что касается стоимости, в основе ценообразования наших курсов лежит юнит-экономика каждой отдельной программы. Она включает в себя не только расходы на подготовку материалов, но и траты на развитие платформы, команду сопровождения, работу ревьюеров и многое другое. Безусловно, всегда можно найти альтернативные форматы обучения.
Кому-то подходит наш формат: учебная программа с тренажёром, код-ревью, наставниками и карьерным треком, а кому-то больше подойдёт предложение конкурентов или просто видео на YouTube и открытые источники. Здесь выбор остается исключительно за студентом
Добрый день! Большое спасибо вам за отзыв, вовзвращаемся с ответом. Мы с большим вниманием относимся к конструктивной критике в свой адрес. Именно обратная связь наших студентов помогает нам держать руку на пульсе и следить за качеством наших курсов — в конкретном случае следить за качеством сопровождения и работой команды трудоустройства.
Мы разобрали ваш комментарий по курсу «Python разработчик» с командой и хотели бы подробно ответить на все замечания.
Формат обучения: Наши студенты действительно изучают теорию в учебнике, после чего отрабатывают её на практике в тренажёре и проектах. Проекты проверяют реальные разработчики, которые оставляют полезные комментарии в случае необходимости доработки кода. Если в процессе обучения у студентов возникают вопросы по теории, то с ними всегда на связи опытный наставник курса. Он сможет помочь с поиском ответа на вопрос.
Обучающие материалы: Онлайн-вебинары проводятся раз в спринт — раз в 2 недели. Каждый вебинар проводит действующий разработчик — это может быть как специалист из Яндекса, так и любой другой компании. Здесь мы ориентируемся не на место работы, а на опыт и навыки наставника. В 28 когорте наставниками были Алексей и Денис. Наши коллеги проводили вебинары раз в спринт. Аудио- и видеозаписей действительно не было — эти форматы в Практикуме не предусмотрены.
Помощь по мере прохождения курса и сопровождение: На всём пути обучения вас поддерживают 1) куратор – ему можно задать вопросы по организационной части, 2) наставники, которые помогают с теорией и практическими заданиями и 3) ревьюер, с которым можно обсудить комментарии по выполненным проектам.
Не исключена ситуация, когда на ваш вопрос в общем чате когорты знает ответ одногруппник. Однако наставник всегда следит за тем, чтобы такие ответы были верными и дополняет их своими комментариями.
В первом пункте мы рассказали, что усваивать новый теоретический материал вам помогает опытный наставник. Если у студента есть вопрос по теории, он пишет наставнику в общем чате когорты. Так как нередко у студентов бывают похожие вопросы, обращение в общем чате поможет ответить на один и тот же вопрос всем сразу.
Во время вашего обучения на курсе максимальный срок ответа наставника составлял 24 часа, сейчас это 12 часов. Это SLA, в течение которого студент получит ответ на свой вопрос. Также всегда на связи техподдержка, которая оперативно поможет разобраться с заданиями в тренажёре.
Про трудоустройство: Более 10 000 студентов, которые закончили обучение в Практикуме уже нашли новую работу. В среднем 60% студентов Практикума проходят обучение до конца, так как здесь многое зависит от мотивации студента, выбора курса, его ресурсов и того, какой образовательный опыт мы вместе — команда Практикума + студент — сможем создать.
Наша команда трудоустройства помогает оформить резюме, подготовить портфолио и учит навыкам самопрезентации на собеседовании. Мы даём инструменты, которыми студент будет самостоятельно пользоваться в процессе устройства на работу.
В завершение хотим ещё раз поблагодарить вас за то, что поделились своим опытом обучения в Практикуме. А ещё мы надеемся, что смогли дать чуть больше контекста при разборе всех пунктов вашего комментария.
Искать первую работу разработчику действительно сложно, но на примере наших выпускников видим, что джуны по-прежнему нужны рынку — они регулярно находят работу. Например, 900+ выпускников python-разработчиков уже работают программистами.
Поделимся парой ссылок. Мы проводили вебинар, где как раз разбирали, есть ли вакансии для новичков и на что они могут рассчитывать: https://youtu.be/1FcflQeR_mQ?t=300
Мы не утверждаем, что гуманитариям будет совсем сложно при изучении платформы 1С. Скорее, посыл противоположный: для выпускников технических вузов или людей с ИТ/математических бэкграундом стать программистом 1С (как и программистом на любом другом языке) будет немного проще. При этом мы сами видим много примеров наших выпускников, которые становились отличными разработчиками без какого-либо технического или математического бэкграунда
Конкретное решение для трекера задач также зависит от размера компании. В более-менее крупных компаниях 1С — это часть ИТ-архитектуры (обычно часть бэкенда), а таск-трекер един для всех, в том числе и не для ИТ-отделов. Поэтому обычно используют более распространенные специализированные решения.
Если 1С единственный используемый язык в компании, то и таск-треккер, скорее всего, будет реализован на платформе 1С.
Он будет и в базовой, и в расширенной программе
Каждый наш курс вы можете купить в рассрочку или кредит — получится избежать оплаты сразу всей суммы.
Обновления на лендингах появятся в конце следующей недели. А нашим читателям на Хабре мы решили рассказать о новостях заранее :)
Этот опрос был частью исследования Практикума и Хабра о выгорании во время учёбы. Результаты и выводы мы собрали тут: https://studyburnout.habr.io/
Оптимальное решение
Такой способ позволяет решить за
O(n)
по времени иO(1)
по памяти.Это возможно с помощью оператора
XOR
— исключающееИЛИ
.Числа состоят из байтов, а байты из битов.
XOR
работает с битами двух чисел и возвращает в результате третье число. Операция производится поразрядно по одному биту из каждого числа.XOR вернёт 1, если только один бит равен 1. Получится вот так:
На примере вот такого вектора:
{12, 11, 12}
рассмотрим что будет происходить. Покажем только 4 первых бита:Изначально
result
равен нулю, значит:0 ^ 12 — 0000 ^ 1100 = 1100
1100 ^ 11 — 1100 ^ 1011 = 0111
0111 ^ 12 — 0111 ^ 1100 = 1011
В конце получился 1011, это 11 в двоичной системе счисления.
Первое число просто присвоилось переменной result, а далее биты другого числа вычитались из него. После второго числа в переменной было число 0111 — число 7. Если бы не условие, что все числа будут повторяться дважды, кроме одного, то наличие числа 7 в векторе всё бы испортило и превратило число назад в 0. Второе повторение того же числа (необязательно даже последовательное) отменяет первую операцию. А так как одно число повторяется только один раз, то его никто не компенсировал, и оно осталось храниться в результате.
Решение задачи ↓
Для любого кофе доступны 4 варианта: без молока, на обычном молоке, на соевом молоке, на овсяном молоке.
Варианты напитка в принципе:
кофе без сиропа,
с одним сиропом или с двумя сиропами,
горячий шоколад на молоке,
чай.
Всего вариантов:
кофе без сиропа: 4×7=28,
кофе с одним сиропом: 8×4×7=224,
кофе с двумя разными сиропами: (7×8)/2×4×7=784,
горячего шоколада: 3×2=6,
чая: 5.
Итого получаем: 28+224+784+6+5=1047.
1047 дней понадобится Ане, чтобы перепробовать все возможные варианты напитков.
Посчитаем количество дней в 3 годах: 3×365=1095. Это не на много, но всё же больше, чем 1047, значит, за 3 года Аня справится!
Предыдущий ответ нужно умножить на два: 1047×2 = 2094 дня, это примерно 5 лет и 9 месяцев. Долгосрочная задача!
Ответ! Если трое друзей — математики, то они могут решить проблему с помощью теории игр, комбинаторики или экономики. А ещё лучше — применить сразу всё: https://www.youtube.com/watch?v=fSwcGqFV2RM. Справедливое решение с точки зрения математики объясняют в последнем фрагменте.
Нужно разделить стоимость первого участка дороги на троих, второго — на двоих оставшихся, а за последний кусочек платит только третий человек. Тогда первый заплатит 600/3=200 рублей, второй 600/3+600/2=500 рублей, а третий 600/3+600/2+1800=2300 руб.
@BanaKingи @NSISбыли правы.
Не уточнила, исправляюсь — её нет, потому что и набора в 24 году на неё нет
Ориентироваться можно на лендинг: https://practicum.yandex.ru/high-education. Там актуальные программы + будем добавлять новые. «Фронтенд и мобильная разработка» — пример программы, на которую набирали в 2023, как пример, чему учим
Спасибо, что поделились мнением! Вашу обратную связь по вводной части передаём команде курса в работу :) Что касается программы — азов действительно много, т.к. курс рассчитан на новичков в профессии, но мы распределили темы и нагрузку так, чтобы успеть осознать материал, а потом отработать знания на практике. Плюс можно будет попасть на стажировку и получить реальный опыт.
Перепроверили в тексте, всё должно работать. Попробуйте, пожалуйста, перейти ещё раз по прямой ссылке: https://practicum.yandex.ru/sys-admin/
Добрый день! Консультации длятся 30 минут. Что касается стоимости, в основе ценообразования наших курсов лежит юнит-экономика каждой отдельной программы. Она включает в себя не только расходы на подготовку материалов, но и траты на развитие платформы, команду сопровождения, работу ревьюеров и многое другое. Безусловно, всегда можно найти альтернативные форматы обучения.
Кому-то подходит наш формат: учебная программа с тренажёром, код-ревью, наставниками и карьерным треком, а кому-то больше подойдёт предложение конкурентов или просто видео на YouTube и открытые источники. Здесь выбор остается исключительно за студентом
Добрый день! Большое спасибо вам за отзыв, вовзвращаемся с ответом. Мы с большим вниманием относимся к конструктивной критике в свой адрес. Именно обратная связь наших студентов помогает нам держать руку на пульсе и следить за качеством наших курсов — в конкретном случае следить за качеством сопровождения и работой команды трудоустройства.
Мы разобрали ваш комментарий по курсу «Python разработчик» с командой и хотели бы подробно ответить на все замечания.
Формат обучения:
Наши студенты действительно изучают теорию в учебнике, после чего отрабатывают её на практике в тренажёре и проектах. Проекты проверяют реальные разработчики, которые оставляют полезные комментарии в случае необходимости доработки кода.
Если в процессе обучения у студентов возникают вопросы по теории, то с ними всегда на связи опытный наставник курса. Он сможет помочь с поиском ответа на вопрос.
Обучающие материалы:
Онлайн-вебинары проводятся раз в спринт — раз в 2 недели. Каждый вебинар проводит действующий разработчик — это может быть как специалист из Яндекса, так и любой другой компании. Здесь мы ориентируемся не на место работы, а на опыт и навыки наставника.
В 28 когорте наставниками были Алексей и Денис. Наши коллеги проводили вебинары раз в спринт. Аудио- и видеозаписей действительно не было — эти форматы в Практикуме не предусмотрены.
Помощь по мере прохождения курса и сопровождение:
На всём пути обучения вас поддерживают 1) куратор – ему можно задать вопросы по организационной части, 2) наставники, которые помогают с теорией и практическими заданиями и 3) ревьюер, с которым можно обсудить комментарии по выполненным проектам.
Не исключена ситуация, когда на ваш вопрос в общем чате когорты знает ответ одногруппник. Однако наставник всегда следит за тем, чтобы такие ответы были верными и дополняет их своими комментариями.
В первом пункте мы рассказали, что усваивать новый теоретический материал вам помогает опытный наставник. Если у студента есть вопрос по теории, он пишет наставнику в общем чате когорты. Так как нередко у студентов бывают похожие вопросы, обращение в общем чате поможет ответить на один и тот же вопрос всем сразу.
Во время вашего обучения на курсе максимальный срок ответа наставника составлял 24 часа, сейчас это 12 часов. Это SLA, в течение которого студент получит ответ на свой вопрос. Также всегда на связи техподдержка, которая оперативно поможет разобраться с заданиями в тренажёре.
Про трудоустройство:
Более 10 000 студентов, которые закончили обучение в Практикуме уже нашли новую работу. В среднем 60% студентов Практикума проходят обучение до конца, так как здесь многое зависит от мотивации студента, выбора курса, его ресурсов и того, какой образовательный опыт мы вместе — команда Практикума + студент — сможем создать.
Наша команда трудоустройства помогает оформить резюме, подготовить портфолио и учит навыкам самопрезентации на собеседовании. Мы даём инструменты, которыми студент будет самостоятельно пользоваться в процессе устройства на работу.
В завершение хотим ещё раз поблагодарить вас за то, что поделились своим опытом обучения в Практикуме. А ещё мы надеемся, что смогли дать чуть больше контекста при разборе всех пунктов вашего комментария.
Здравствуйте! Подскажите курс, который вы проходили, и номер когорты. Это поможет быстрее уточнить информацию и вернуться к вам с полным ответом
Джуну хорошо знать, что это такое для общего развития. Вот неплохая статья с примерами по этой теме: https://habr.com/ru/articles/130577/
Искать первую работу разработчику действительно сложно, но на примере наших выпускников видим, что джуны по-прежнему нужны рынку — они регулярно находят работу. Например, 900+ выпускников python-разработчиков уже работают программистами.
Поделимся парой ссылок. Мы проводили вебинар, где как раз разбирали, есть ли вакансии для новичков и на что они могут рассчитывать: https://youtu.be/1FcflQeR_mQ?t=300
Необходимость нанимать джунов зависит в том числе от компании и задач. По этой теме делали такой материал: https://habr.com/ru/companies/yandex_praktikum/articles/746378/
Мы не утверждаем, что гуманитариям будет совсем сложно при изучении платформы 1С. Скорее, посыл противоположный: для выпускников технических вузов или людей с ИТ/математических бэкграундом стать программистом 1С (как и программистом на любом другом языке) будет немного проще. При этом мы сами видим много примеров наших выпускников, которые становились отличными разработчиками без какого-либо технического или математического бэкграунда
Конкретное решение для трекера задач также зависит от размера компании. В более-менее крупных компаниях 1С — это часть ИТ-архитектуры (обычно часть бэкенда), а таск-трекер един для всех, в том числе и не для ИТ-отделов. Поэтому обычно используют более распространенные специализированные решения.
Если 1С единственный используемый язык в компании, то и таск-треккер, скорее всего, будет реализован на платформе 1С.
да, обязательно будут!
придумал 20, а три разобрали в качестве примера)