
Pheezx Coding
«Хороший канал на YouTube с объяснением leetcode | здесь"
01. Две суммы
Input: nums = [2,7,11,15], target = 9 Output: [0,1] Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
решение
function twoSum(nums, target) {
const comp = new Map();
const len = nums.length;
for(let i=0; i < len; i++){
if(comp[nums[i]] >= 0){
return [comp[nums[i]], i];
}
comp[target- nums[i]] = i;
}
return [];
}
const nums = [2,7,11,15];
console.log(twoSum(nums,9));
«проблемы с литкодом | здесь"
02. Добавьте два числа
Вам даны два непустых связанных списка, представляющих два неотрицательных целых числа. Цифры хранятся в обратном порядке, и каждый из их узлов содержит одну цифру. Добавьте два числа и верните сумму в виде связанного списка.
Вы можете предположить, что эти два числа не содержат начальных нулей, кроме самого числа 0.
Input: l1 = [2,4,3], l2 = [5,6,4] Output: [7,0,8] Explanation: 342 + 465 = 807.
Решение
var addTwoNumbers = function(l1, l2) {
let carry = 0;
let previousNode = new ListNode();
const headNode = previousNode;
while(l1 || l2 || carry) {
let val1 = 0;
let val2=0;
if(l1) {
val1=l1.val;
l1=l1.next;
}
if(l2) {
val2=l2.val;
l2=l2.next;
}
const sum = val1 + val2 + carry;
carry = Math.floor(sum / 10);
const digit = sum % 10;
const currentNode = new ListNode(digit);
previousNode.next = currentNode;
previousNode = currentNode;
}
return headNode.next;
};
проблемы с буквенным кодом | https://leetcode.com/problems/add-two-numbers/
03. Самая длинная подстрока без повторяющихся символов
Input: s = "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3.
Ограничения:
0 <= s.length <= 5 * 104sсостоит из английских букв, цифр, символов и пробелов.
Решение
var lengthOfLongestSubstring = function(s) {
let max = 0
let begin = 0
let set = new Set()
for(let end = 0; end < s.length; end++){
while(set.has(s[end])){
set.delete(s[begin])
begin = begin + 1
}
set.add(s[end])
max = Math.max(max, end - begin + 1)
}
return max
};
«проблемы с литкодом | здесь"