How to fix the last commit in git
6:59
How to delete branches in git
6:55
2 жыл бұрын
Пікірлер
@sazonikv5086
@sazonikv5086 17 сағат бұрын
А в чем разница между merge and rebase?
@user-oj7ln2nb9k
@user-oj7ln2nb9k 4 күн бұрын
const anagram = (str1, str2) => { const sortedStr1 = str1.split('').sort().join(''); const sortedStr2 = str2.split('').sort().join(''); return sortedStr1 === sortedStr2; }
@miloman1995s
@miloman1995s 5 күн бұрын
конч проукраинский
@user-fj4es6ij4n
@user-fj4es6ij4n 9 күн бұрын
const checkIntervals = ([,a], [b]) => b <= a; const mergeInterval = (a, b = a) => [a[0], Math.max(...a, ...b)]; const merge = intervals => intervals .sort(([a], [b]) => a - b) .reduce((acc, value) => { const findedInterval = acc.find((interval) => checkIntervals(interval, value)) return [ ...acc.filter(interval => interval !== findedInterval), mergeInterval(value, findedInterval), ]; }, []);
@okelove9807
@okelove9807 12 күн бұрын
Очень круто спасибо.❤
@user-cn3zn4gi8o
@user-cn3zn4gi8o 13 күн бұрын
Наконец-то)) спасибо вам, очень хорошо объяснили, я до этого читала. И никак не могла понять. У меня скопилось много разных версий. Так и жила несколько лет 😀. Документацию к гиту писал какой - то душнила, чтоб было максимально непонятно и запутанно.
@nk_77777
@nk_77777 16 күн бұрын
Классный ролик, спасибо)❤
@user-no7sl1yk3f
@user-no7sl1yk3f 19 күн бұрын
По идеи у вашего решения сложность O(n + n), разве нет? Цикла же два. Предлагаю вариант O(n): function firstUniqChar(s: string) { const hashUniq = new Map(); s.split('').forEach((char, i) => { hashUniq.has(char) ? hashUniq.delete(char) : hashUniq.set(char, i); }) if (hashUniq.size === 0) return -1; return hashUniq.values().next().value; }
@user-uw8hy1lc4p
@user-uw8hy1lc4p 19 күн бұрын
А если делать всегда merge, но в какой то момент в конце сделать сквош, получиться же один коммит на задачу
@user-no7sl1yk3f
@user-no7sl1yk3f 19 күн бұрын
Не хотел делать O(n^2) и решил сделать O(n*log n) с помощью бинарной сортировки. Это пример того - что если не думать о структуре данных то алгоритмы мало полезны. Спасибо за решение function intersect(arr1: Array<number>, arr2: Array<number>) { arr1.sort((a, b) => a - b); arr2.sort((a, b) => a - b); const intersectArr = []; function binSearch(findValue: number, arr: Array<number>) { let left = 0; let right = arr.length - 1; while(left <= right) { const middle = Math.floor((left + right) / 2); const middleValue = arr[middle]; if (middleValue === findValue) { arr.splice(middle, 1); return true; } else if (middleValue > findValue) { right = middle - 1; } else { left = middle + 1; } } return false; } arr1.forEach((item) => { if (binSearch(item, arr2)) intersectArr.push(item); }) return intersectArr; };
@wbrframe
@wbrframe 21 күн бұрын
Спасибо, качественная подача ✌
@wbrframe
@wbrframe 21 күн бұрын
Отдельно добавлю, спасибо за видео о донбасе и то что там произошло на самом деле 🤝
@maksimdubinin
@maksimdubinin 23 күн бұрын
Спасибо за объяснение!
@suspiciousgoose7904
@suspiciousgoose7904 23 күн бұрын
Полезно) спасибо за видео вам
@larisaplatova1644
@larisaplatova1644 24 күн бұрын
Спасибо за это видео
@voidcode2534
@voidcode2534 27 күн бұрын
kaef
@peacedets
@peacedets 28 күн бұрын
Дай тебе Бог здоровья, хлопчик, наконец-то дошло до старика.
@svet0v
@svet0v 29 күн бұрын
8:48 - начало
@VasiliyFominykh
@VasiliyFominykh 29 күн бұрын
Смотрю такой - "Как удалить дубликаты из отсортированного массива? | Задача с Leetcode", о, думаю, дай гляну может чего кроме set предложат. И правда бла-бла-бла splice... О думаю, надо затестить, а потом смотрю - ёпт, это не питон а ява )))
@inoyakaigor
@inoyakaigor 16 күн бұрын
Это не Ява)
@VasiliyFominykh
@VasiliyFominykh 16 күн бұрын
@@inoyakaigor да? Ну ладно, но и питон тоже )
@inoyakaigor
@inoyakaigor 16 күн бұрын
@@VasiliyFominykh это Яваскрипт =)
@VasiliyFominykh
@VasiliyFominykh 16 күн бұрын
@@inoyakaigor ))) Ещёб их различать )
@user-no7sl1yk3f
@user-no7sl1yk3f Ай бұрын
Первый решение схоже с вашим не подсматривая. Спасибо function isValid(staples: string) { const stack = []; const mapStaples = { "(": ")", "[": "]", "{": "}", } function isOpening(staple) { return [...Object.keys(mapStaples)].includes(staple); } function isValidClosure(value: string, stapleOpening: string) { if (value === mapStaples[stapleOpening]) return true; return false }; for (const staple of staples) { if (isOpening(staple)) { stack.push(staple); continue; } else if (isValidClosure(staple, stack.at(-1))) { stack.pop(); } else { return false; } } return true; }
@VolodymyrNazarenko-ox8ox
@VolodymyrNazarenko-ox8ox Ай бұрын
Дякую!
@AlisaLisa-sx2te
@AlisaLisa-sx2te Ай бұрын
Полезные видео, приятная подача. Спасибо!
@user-no7sl1yk3f
@user-no7sl1yk3f Ай бұрын
Спасибо function checkPath(start, end) { const forbiddenCoordinates = {}; function isForbiddenCoordinates(y, x) { return forbiddenCoordinates[y]?.includes(x); } function isAvailableCoordinates(level, x) { return level?.[x] === 0; } function move(position) { const {x, y} = position; if (x === end.x && y === end.y) return true; const level = maze[y]; const nextLevel = maze?.[y + 1]; const availableCoordinates = []; if (isAvailableCoordinates(level, x - 1) && !isForbiddenCoordinates(y, x - 1)) availableCoordinates.push({x: x - 1, y}); if (isAvailableCoordinates(level, x + 1) && !isForbiddenCoordinates(y, x + 1)) availableCoordinates.push({x: x + 1, y}); if (isAvailableCoordinates(nextLevel, x) && !isForbiddenCoordinates(y + 1, x)) availableCoordinates.push({x: x, y: y + 1}); forbiddenCoordinates[y] ? forbiddenCoordinates[y].push(x) : forbiddenCoordinates[y] = [x]; if (availableCoordinates.length === 0) { return false; } for(let coordinate of availableCoordinates) { if (move(coordinate)) return true; } return false; } return move(start); }
@nikonlaw
@nikonlaw Ай бұрын
Привет. Спасибо за видео. Я только начал изучать и у меня может странный вопрос. Если я находясь в ветке "фича" сделаю git merge main, то разве моя ветка "фича" не станет единственной и главной? Я думаю это не по православному и нужно мержить свою ветку в "мейн". Я ошибаюсь?
@user-sy2dd8do3t
@user-sy2dd8do3t Ай бұрын
респект за имена с теории большого взрыва 😊
@boryskatowsky5190
@boryskatowsky5190 Ай бұрын
Очень полезное видео. А у Вас нет случайно урока где такую же функцию можно реализовать с использованием ts?
@extreametv3639
@extreametv3639 Ай бұрын
Не чего не понял что значит эвальвелено?
@user-mg4nn6gi5n
@user-mg4nn6gi5n Ай бұрын
Походу в епам нифига не учат
@heybeachMIN
@heybeachMIN Ай бұрын
Спасибо за видео! Очень полезное оказалось для меня)
@SchnippSchnappShnappi
@SchnippSchnappShnappi Ай бұрын
Спасибо, мне сегодня она попалась в собесе
@cleverscript
@cleverscript Ай бұрын
НЕ понимаю почему сразу не показываете ситуации как откатится в remote ветках, ведь это еще большая проблема чем в локальной когда что то пошло не так...
@Rozalinaag
@Rozalinaag Ай бұрын
такое себе, этот rebase... лучше старый добрый merge и никаких проблем
@asktosimon
@asktosimon Ай бұрын
если проходить с конца массива то не надо заморачиваться над смещением
@user-bb6cs6wk6y
@user-bb6cs6wk6y 2 ай бұрын
А что делать ,если команды git вообще не выполняются Пишу git add мой файл ,и не происходит ничего и файл не добавляется, при git commit ошибку выдает? Только недавно начал в эту тему погружаться, не судите строго
@thekiruhan2616
@thekiruhan2616 Ай бұрын
У тебя создан репозиторий локальный? Гит есть на компе?
@moguha
@moguha 2 ай бұрын
Огромное спасибо
@moguha
@moguha 2 ай бұрын
Огромное спасибо! Мира вам....и нам
@EvgenyTalagaev
@EvgenyTalagaev 2 ай бұрын
Спасибо, очень полезно
@user-cr3gf4mh2n
@user-cr3gf4mh2n 2 ай бұрын
const trap = (heights) => { let result = 0; for(let i = 1; i < heights.length - 2; i++) { let maxLeft = Math.max(...heights.slice(0,i)) let maxRight = Math.max(...heights.slice(i + 1)) let minHeight = Math.min(maxLeft,maxRight) let quantity = minHeight - heights[i]; if(quantity > 0){ result += quantity } } return result }
@kemalgurbansahadow9631
@kemalgurbansahadow9631 2 ай бұрын
Или я жескто туплю. Или эта тема действительно очень сложная для понимания!
@radiakendal5769
@radiakendal5769 2 ай бұрын
Хорошее объяснение, спасибо
@Ramosok
@Ramosok 2 ай бұрын
@Ramosok
@Ramosok 2 ай бұрын
@Ramosok
@Ramosok 2 ай бұрын
@Ramosok
@Ramosok 2 ай бұрын
@Ramosok
@Ramosok 2 ай бұрын
@Ramosok
@Ramosok 2 ай бұрын
@Ramosok
@Ramosok 2 ай бұрын
@artemmakatera8663
@artemmakatera8663 2 ай бұрын
Можно и 1 циклом сделать
@andreibudnik7435
@andreibudnik7435 2 ай бұрын
Занимаюсь недавно. Сделал без использования объектов. Не знал про понятие "стека". Использовал только for, if и function. Функция ищет соседние скобки одного вида и разного направления, если находит - вырезает их через splice, увеличивает счетчик (счетчик использую как условие выхода из цикла) и заново вызывает себя. ___________________________ function validBraces(braces) { let arr = braces.split(''); let ciclCounter = 0; const endOfCicl = arr.length; function recursDelBrasket(arr) { for (let i = 0; i < arr.length; i++) { const element = arr[i]; console.log(arr); console.log(element); if(arr.length === 0){ break; } if((element === '(') && ((i + 1) === arr.indexOf(')'))){ ciclCounter++; arr.splice(i, 2); return recursDelBrasket(arr); } if((element === '{') && ((i + 1) === arr.indexOf('}'))){ ciclCounter++; arr.splice(i, 2); return recursDelBrasket(arr); } if((element === '[') && ((i + 1) === arr.indexOf(']'))){ ciclCounter++; arr.splice(i, 2); return recursDelBrasket(arr); } if(ciclCounter >= endOfCicl){ break } } } recursDelBrasket(arr); if(arr.length === 0) { return true; } else { return false; } }
@abolnikov
@abolnikov 2 ай бұрын
Красиво. Для подготовки к собеседованию очень полезно
@Ramosok
@Ramosok 2 ай бұрын