js算法
qq_2268846315
这个作者很懒,什么都没留下…
展开
-
leetcode算法-(有效的括号)
题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出:false解答:var isValid = function(s) { var原创 2020-11-12 01:04:52 · 74 阅读 · 0 评论 -
算法(6)
题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”解答var longestCommonPrefix = function(strs) { if(strs.length < 1) { return ''; } let value = '' let item = strs[0]; for (let i = 0;原创 2020-11-11 00:35:41 · 53 阅读 · 0 评论 -
2020-11-06
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况原创 2020-11-06 00:45:27 · 284 阅读 · 0 评论 -
JS-算法(5)
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21答案function reverse(x) { let result = 0; while(x !== 0) { result = result * 10 + x % 10; x = (x / 10)| 0; } return result;}...原创 2020-11-05 01:21:23 · 91 阅读 · 0 评论 -
js-单链表反转
1. 迭代反转function reverse(head) { let beg = null; let mid = head; let end = head.next; while(1) { head.next = beg; if (end === null) { break; } beg = head; head = end; end = end.next; } head = mid; return head;}2. 头插法反转function rev原创 2020-11-05 00:47:02 · 351 阅读 · 0 评论 -
JS-算法(3)
题目:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。最优解答(求出差值,放入map中,寻找差值是否在map中存在,如果存在返回索引值):vartwoSum=function(nums,target){constmap=newMap();for(leti=0;i<nums.leng...原创 2020-11-05 00:44:43 · 150 阅读 · 0 评论 -
js算法-从头到尾打印单链表
题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。例子:输入:head = [1,3,2] 输出:[2,3,1]解法:var reversePrint = function(head) { let arr = []; while(head !== null) { arr.unshift(head.val) head = head.next } return arr};解析:首先定义一个空数组来存放节点的值,原创 2020-11-04 14:57:21 · 294 阅读 · 0 评论 -
JS-算法(2)
js算法(2)题目:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。输入:s = “We are happy.”输出:“We%20are%20happy.”最优解题思路1(执行时间 72 ms,消耗内存 37.6MB):function(s) { return s.replaceAll(' ', '%20');}最优解题思路2(执行时间 20ms,消耗内存 37.7MB):function(s) { return s.replace(/\s/g, '%20');}最原创 2020-11-03 23:22:50 · 58 阅读 · 0 评论 -
JS-算法(1)
js-算法题目:找出数组中重复的数字在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如:输入[3, 3, 2, 0, 2, 5, 3] 输出:3 或 2最优解决方法1(运行时间120ms):var findRepeatNumber = function(nums) { nums.sort(); for (let i = 0; i < n原创 2020-11-03 22:55:14 · 87 阅读 · 0 评论