Задача из Собеседования в Microsoft #java #microsoft #собеседование #программирование

preview_player
Показать описание
#Java #УрокиJava #JavaДляНачинающих

_________________________________________________________________________
tags:

java, java tutorial, learn java, java tutorial for beginners, programming, java programming, tutorial, java full course, java beginner lesson, coding with john, java for beginners, how to code, java programming tutorial, программирование, джава, navin, java language, java placement, webdev, oracle, java coding, lesson, how to learn java, java programming for beginners, java course, how to code java, app development, java basics, java beginner, software engineer, programmer, learn java programming, learn java code, should you learn java, разработка, java code, developer, cloud, java virtual machine, how to code in java, learn to code java for beginners, learn java for beginners, jvm, jdk, java programming, java, как стать программистом, программирование, изучение языков программирования, менторинг программирование, разработка, курсы программирования онлайн, programming, программист, android, языки программирования, it, джава, java для начинающих, it курсы, front-end, программирование на java, java start, обучение java, develop, java уроки для начинающих, изучение java, code blog, выбор языка программирование, java программирование, начало программирование, javascript, уроки java, java уроки, программирование для начинающих, back-end, design, backend, как стать программистом с нуля, coding, java junior, java для чайников, программирование на java с нуля, как стать программистом самостоятельно, прямой эфир о java, как выучить java, как выучить java самостоятельно, как стать джавистом, java с нуля, java уроки с нуля, что учить java, язык программирования java, курсы программирования, js, сравнение, java tutorial for beginners, программирование с нуля, разработчик, курс java, как стать java разработчиком, уроки, джаваскрипт, python, для начинающих
Рекомендации по теме
Комментарии
Автор

📌ССЫЛКА НА TELEGRAM В ОПИСАНИИ ПРОФИЛЯ

senior_javist
Автор

На собеседовании в Майкрософт дают 27-ю задачу ЕГЭ по информатике, а говорят, что ЕГЭ - зло

РоговТимур
Автор

Все, что я понял: SUKABLYATYOBANIYPYTHON BIMBIMBAMBAM NAHUY

Kouyi
Автор

Я думал тут по сложнее будет, что надо посчитать кол-во таких подмасивов из любого набора чисел а не подряд

_MaiT
Автор

Через два указателя решение будет получше. Ассимптотика по времени также O(n), а по памяти будет O(1), а не O(n), как в hashMap

Anton-uqej
Автор

Можно также решить алгоритмом sliding window без hashMap. Кому интересно, прочитайте про алгоритм

bogdan
Автор

А в чём смысл хэшмапу использовать если здесь и обычным массивом обойтись можно

_daniilpetrenko
Автор

Задачка интересная и, лично я, без вашего решения не додумался бы, как такое решить за O(n). На литкоде поэкспериментировал с разными решениями, just for fun даже сделал решение, которое отрабатывает за 0 ms и попало на 1-е место по скорости, но с бешенным перерасходом по памяти — 58 МБ (я использовал Rust). В итоге остановился на компромиссном решении за 3 ms и 2.8 МБ.

DezzKB
Автор

Интересно ты во время решения добавляешь новые условия

Gameuskus
Автор

и что ответит этот алгоритм для массива [1, 1, 1] и к=2? Надеюсь 3? но нет;)

Mikst
Автор

def f(s):
for i in range(len(s)):
a = sum(s[:i + 1])
if a == k:
return s[:i + 1], s[i + 1:]
elif a < k:
continue
elif a > k:
return [], s[1:]


s = [5, 8, 1, 3, 4, 1, 3, 5, 1, 2, 1]
a, k = [], 5
while sum(s) > k:
b = f(s)[0]
if b:
a.append(b)
s = f(s)[1]

print(*a)

Рекурсия в Python

ismism
Автор

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

Например, что подмассив это набор чисел из массива, которые идут именно подряд.

Было бы круто рассмотреть более интересный пример, например: 0, 0, 1, 1, 1, 0, 0; k = 3.

Далее в решении ты говоришь, что мэп хранит для заданной суммы количество подмассивов, но на самом деле количество префиксов с такой суммой. Это важно, т.к. ты хранишь частоты префиксных сумм, чтобы потом находить количества подходящих отрезков, заканчивающихся в i.

Поправьте, если ошибаюсь.

В остальном, очень круто, спасибо за задачу:)

thisissomerandomhandle
Автор

Интересно, когда уже элементарные задачи на знание базовых алгоритмов перестанут называть задачами для устройства на работу в топовые компании

ИгорьПопцов-ло
Автор

Это задание дико похоже на 27 задание ЕГЭ по инфе 2021 года. На нем то я и погорел... А так бы 100 была...

LEOn-CHAN
Автор

можно решить деревом отрезков на сумму за nlogn

fluffy
Автор

Задачка 6 ранга на codewars ; 6 ранг считается для новичков

denisll
Автор

Нам на первом курсе такие задачки давали на алгоритмах. И эта из базового уровня. Пойду что-ли в Майкрософт устроюсь

Kosenkov_Dmitry
Автор

Два указателя и массив префиксных сумм эффективнее

tiimuur
Автор

а конвенцию к написанию кода от Майков не хочешь применить ?

Im-not-meat
Автор

Ты сказал что в сумме равно k, значит 3 = 3 не может взяться как ответ, так как там числа не суммируются

tami-hemm