![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法题
算法题
ygx_work
好好学习,天天向上
展开
-
笔记 前端需要了解的算法题--动态规划
动态规划背后的基本思想非常简单。就是将一个问题拆分为子问题,一般来说这些子问题都是非常相似的,那么我们可以通过只解决一次每个子问题来达到减少计算量的目的。一旦得出每个子问题的解,就存储该结果以便下次使用。斐波那契数列斐波那契数列就是从 0 和 1 开始,后面的数都是前两个数之和0,1,1,2,3,5,8,13,21,34,55,89…那么显然易见,我们可以通过递归的方式来完成求解斐波那契...原创 2020-05-07 00:23:45 · 167 阅读 · 0 评论 -
笔记 前端需要了解的算法题--树
二叉树的先序,中序,后序遍历先序遍历表示先访问根节点,然后访问左节点,最后访问右节点。中序遍历表示先访问左节点,然后访问根节点,最后访问右节点。后序遍历表示先访问左节点,然后访问右节点,最后访问根节点。递归实现function TreeNode(val) { this.val = val; this.left = this.right = null;}var traversa...原创 2020-05-07 00:05:22 · 156 阅读 · 0 评论 -
笔记 前端需要了解的算法题--链表
反转单向链表思路很简单,使用三个变量分别表示当前节点和当前节点的前后节点,虽然这题很简单,但是却是一道面试常考题。var reverseList = function(head) { // 判断下变量边界问题 if (!head || !head.next) return head // 初始设置为空,因为第一个节点反转后就是尾部,尾部节点指向 null let...原创 2020-05-06 23:47:36 · 181 阅读 · 0 评论 -
笔记 前端需要了解的算法题--位运算
在进入正题之前,我们先来学习一下位运算的内容。因为位运算在算法中很有用,速度可以比四则运算快很多。在学习位运算之前应该知道十进制如何转二进制,二进制如何转十进制。这里说明下简单的计算方式。十进制 33 可以看成是 32 + 1 ,并且 33 应该是六位二进制的(因为 33 近似 32,而 32 是 2 的五次方,所以是六位),那么 十进制 33 就是 100001 ,只要是 2 的次方,那么就...原创 2020-05-06 23:04:39 · 175 阅读 · 0 评论 -
笔记 前端需要了解的算法题--排序
通用函数,在之后的举例中会使用到。function checkArray(array) { if (!array) return}function swap(array, left, right) { let rightValue = array[right] array[right] = array[left] array[left] = rightValu...原创 2020-05-06 23:42:07 · 140 阅读 · 0 评论