背景
时间复杂度
空间复杂度
1、两数之和
解题代码:
var twoSum = function(nums, target) {const map = new Map();for(let i = 0, len = nums.length;i < len;i++) {if(map.has(target - nums[i])) {return [map.get(target - nums[i]), i];}map.set(nums[i], i);}return [];
};作者:jplusztx
链接:https://leetcode.cn/problems/two-sum/solution/javascript-by-jplusztx-fbb9/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2、两数相加
力扣
3、20. 有效的括号
4、21. 合并两个有序链表
var mergeTwoLists = function(l1, l2) {if (l1 === null) {return l2;} else if (l2 === null) {return l1;} else if (l1.val < l2.val) {l1.next = mergeTwoLists(l1.next, l2);return l1;} else {l2.next = mergeTwoLists(l1, l2.next);return l2;}
};作者:LeetCode-Solution
链接:https://leetcode.cn/problems/merge-two-sorted-lists/solution/he-bing-liang-ge-you-xu-lian-biao-by-leetcode-solu/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
5、53. 最大子数组和
function Status(l, r, m, i) {this.lSum = l;this.rSum = r;this.mSum = m;this.iSum = i;
}const pushUp = (l, r) => {const iSum = l.iSum + r.iSum;const lSum = Math.max(l.lSum, l.iSum + r.lSum);const rSum = Math.max(r.rSum, r.iSum + l.rSum);const mSum = Math.max(Math.max(l.mSum, r.mSum), l.rSum + r.lSum);return new Status(lSum, rSum, mSum, iSum);
}const getInfo = (a, l, r) => {if (l === r) {return new Status(a[l], a[l], a[l], a[l]);}const m = (l + r) >> 1;const lSub = getInfo(a, l, m);const rSub = getInfo(a, m + 1, r);return pushUp(lSub, rSub);
}var maxSubArray = function(nums) {return getInfo(nums, 0, nums.length - 1).mSum;
};作者:LeetCode-Solution
链接:https://leetcode.cn/problems/maximum-subarray/solution/zui-da-zi-xu-he-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
其他解法:
6、66. 加一
7、爬楼梯
8、
9、
10、
11、
解法:
12、环形链表
13、相交链表
14、打家劫舍
解法:
15、反转链表
16、 存在重复元素
18、 存在重复元素2
19、移动零
20、
21、
以上参考链接地址:Leetcode刷题 704. 二分查找 Binary Search_哔哩哔哩_bilibili
有专门js的部分