算法
qq_40567849
计算机系的一条旺
展开
-
js反转链表和二叉树先序遍历
题目描述 输入一个链表,反转链表后,输出新链表的表头。 /*function ListNode(x){ this.val = x; this.next = null; }*/ function ReverseList(pHead) { if(pHead==null){ return null } let pre = null; let next = null; while (pHead !== null) { ne.原创 2020-09-22 13:40:36 · 113 阅读 · 0 评论 -
js面试题之判断是否为质数
写一个isPrime函数,当其为质数时返回true,否则返回false。 有点学习到了,我原来的实现方法就是循环2到num,判断能不能整除,都不能整除则为素数(质数)。 原博主的算法思路: 我认为这是面试中最常见的问题之一。然而,尽管这个问题经常出现并且也很简单,但是从被面试人提供的答案中能很好地看出被面试人的数学和算法水平。 首先,因为JavaScript不同于C或者Java,因此你不能信任传递来的数据类型。如果面试官没有明确地告诉你,你应该询问他是否需要做输入检查,还是不进行检查直接写函数。严格上转载 2020-09-12 17:31:22 · 375 阅读 · 0 评论 -
js数组去重高效方法整理
js数组去重方法整理 方法一:Array.filter() + indexOf function distinct(arr) { return arr.filter((item,index) => { return arr.indexOf(item) === index; }) } 理解:indexOf是查找当前item的索引,如果刚好等于当前循环的index,则说明是第一次出现,如果不等,则说明在这之前已经存在了item,即重复了。通过filter过滤掉重复的值 方原创 2020-09-13 14:54:00 · 386 阅读 · 0 评论 -
js实现排序算法简易写法
冒泡排序 function bubbleSort(arr) { len = arr.length for (let i = 0; i < len - 1; i++) { for (let j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { var temp = arr[j] arr[j] = arr[j + 1] arr原创 2020-09-14 17:30:48 · 487 阅读 · 0 评论 -
js算法每日一题之求二叉树最小深度
求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 function run(root) { if (root == null) { return 0 } if (root.left == null && root.right == null) { return 1 } if (root.left == null) { return run(root.right) + 1原创 2020-09-16 09:37:37 · 182 阅读 · 0 评论 -
js算法每日一题之后缀表达式求值
计算逆波兰式(后缀表达式)的值 运算符仅包含"+","-","*“和”/",被操作数可能是整数或其他表达式 例如: [“2”, “1”, “+”, “3”, “*”] -> ((2 + 1) * 3) -> 9 [“4”, “13”, “5”, “/”, “+”] -> (4 + (13 / 5)) -> 6 function evalRPN(tokens) { const operation = { '+': (a, b) => a +.原创 2020-09-16 09:49:10 · 435 阅读 · 0 评论