LeetCode #1 - TwoSum

preview_player
Показать описание
Рекомендации по теме
Комментарии
Автор

Это просто магия!
Только с третьего раза понял решение через мапу...

Alfizik
Автор

Спасибо за видео, нашел что-то новое, обычно такие задачи решаю с помощью двойного цикла)

ivanyuyukin
Автор

Что то мало лайков!отмечусь! супер Евгений продолжайте!!

ИгорьКолесник-вп
Автор

Спасибо за видео, лайк и смотрю остальные )

maksiplus
Автор

Сейчас в этой задаче можно выбрать несколько условий для проверки (разные массивы).
Один из них:
Input: nums = [3, 2, 4], target = 6
Output: [1, 2]
В таком случае первое решение даст: Output: [0, 0]

KarmanovDanil
Автор

смотрю, если не выбрасывать исключение, то идея просит ретурн добавить в конце метода, прикольно

romabulava
Автор

Что то я на самой первой задаче застрял. Не могу придумать алгоритм.
Подскажите пожалуйста полегче ресурсы, если осведомлены о них.

mkrugl
Автор

Не совсем понял зачем делаете такую запись int requiredNumber=target-num[i] и потом сравнивать это в условии, когда сразу можно указать a+b=target. Это сократит код.
Это в случае двойного цикла. Надеюсь понятно написал, пишу комментарий ночью)

denysbondarenko
Автор

1. подозреваю что на этих данных программа упадет [-10, 2147483647, 0], 2147483647
2. первый цикл можно начинать с единицы
3. второй цикл можно заканчивать на nums.length-1

KanstantsinSudzilouski
Автор

я не до конца понимаю, зачем нужно
map.get(requiredNumber) != i

если target - map[i] априори !=i в данном кейсе.
Кто-то может объяснить?

CssSpyxed
Автор

А из массива в мапу, никак кроме как циклом данные не сконвертировать?

yuriseid
Автор

Благодарю за видео. Есть ли вероятность, что Вы вернетесь к решению задачек?)

lknfgjk
Автор

Странно, почему потребление памяти меньше чем у других решений? Ведь HashMap должен занимать больше памяти чем обычный двойной вложенный цикл?

drovoseg
Автор

В вашем решении сложность не O(1), а O(N), второй цикл все равно перебирает.

alexxis
Автор

1 Brute force
2 Two-pass Hash Table
3 One-pass Hash Table:
fun twoSum(nums: IntArray, target: Int): IntArray {
val map = hashMapOf<Int, Int>()
for ((index, num) in nums.withIndex()) {
map[target - num]?.let {
return intArrayOf(index, it)
}
map[num] = index
}
throw IllegalArgumentException()
}

flatmapper
Автор

Если в массиве будут одинаковые значения, то ты же их потеряешь при занесении в мапу...

АлександрМясников-йщ
Автор

List<Integer> list =

for(int i = 0; i < nums.length; i++) {
int requiredNumber = target - nums[i];
&& list.indexOf(requiredNumber) != i) {
return new int[] {i,
}
Решение с листом, хотя смысл такой же. Но цикла нет)

АлександрТ-бб