1.两数之和
简单题
var twoSum = function (nums, target) {
const length = nums.length
const m = new Map()
const res = []
for (let i = 0; i < length; i++) {
let a = target - nums[i]
if (m.has(a)) {
res.push(m.get(a), i)
}
m.set(nums[i], i)
}
return res
}
//利用map数据结构保存数据,防止重复遍历 降低时间复杂度
2.两数相加
function ListNode(val, next) {
this.val = val === undefined ? 0 : val
this.next = next === undefined ? null : next
}
var addTwoNumbers = function (l1, l2) {
let head = null,
tail = null
let jinwei = 0
let l3 = new ListNode()
l1 = l1
l2 = l2
while (l1 || l2) {
const n1 = l1 ? l1.val : 0
const n2 = l2 ? l2.val : 0
const sum = n1 + n2 + jinwei
if (!head) {
head = tail = new ListNode(sum % 10)
} else {
tail.next = new ListNode(sum % 10)
tail = tail.next
}
jinwei