力扣算法题(一)

1.两数之和(简单)

var twoSum = function(nums, target) {const map = new Map();for(let i = 0;i < nums.length;i++){const ret = target - nums[i];if(map.has(ret)){//判断map中是否有结果return [map.get(ret),i];//如果有,返回结果}else{map.set(nums[i],i);//如果没有,将数据存入map中}}return [];
};

2.两数相加(中等)

思路

var addTwoNumbers = function(l1, l2) {let heart = new ListNode();//创建头结点let heav = heart;//遍历链表let num = 0;// 记录进位数据while(l1 !== null||l2 !== null){let sum = 0;// if(l1 !=null){sum += l1.val;l1 = l1.next;}if(l2 !=null){sum += l2.val;l2 = l2.next;}sum += num;// 进位heav.next = new ListNode(sum%10);//创建新结点num = Math.floor(sum/10);// 记录进位数据heav = heav.next;}if(num > 0){heav.next = new ListNode(num);}return heart.next;
};

20.有效的括号(简单)

思路

var isValid = function (s) {//pop()方法移除数组末尾的元素并将该元素返回给调用者。如果数组为空,则pop()方法返回undefined。并通过删除来检索元素。const map = new Map();map.set("(", ")");map.set("{", "}");map.set("[", "]");const stack = [];for (let i = 0; i < s.length; i++) {if (map.has(s[i])) {stack.push(map.get(s[i]));}else {if (stack.pop() !== s[i]) {return false;}}}if (stack.length !== 0) {return false;}return true;
};


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部