WWJ Blog

Thinking will not overcome fear but action will.

排序算法归纳

排序算法总结 插入排序 场景: 假设桌子上有一副扑克牌,首先拿起第一张牌放在左手中,当左手中只有一张扑克牌的时候,扑克牌的顺序肯定是有序的,然后我们每次从桌子上拿出一张牌(假设为key)后,都需要在左手中的牌中找到一个正确的位置进行插入,方法就是从右到左将它依次与左手的中牌进行比较,找到一个正确的位置(如果是升序的话,那么就找到第一个比它小的牌,如果是降序的话,那么就找到第一...

最大子数组问题

最大子数组问题 暴力法 是我们很容易就想到的一种解决方法,这种方法就是先从第一个元素遍历到最后一个元素, 计算出以第一个元素为起始位置的最大子数组和,然后再以第二个元素开始遍历到最后一个元素,计算出以第二个元素为起始位置的最大子数组和,依次类推,直到计算出以所有元素为起始位置的最大子数组和 代码实现: Array.prototype.maxSubArray = function () { ...

判断单链表是否有环及两个链表是否相交

判断单链表是否有环及两个链表是否相交 判断单链表是否有环 思路:设置两个指针,都从头结点开始向前遍历,一个速度快,一个速度慢,若链表存在环,那么两个指针一定会相遇的 代码实现: const hasCycleOfList = function(head) { if(!head) return null let slow = fast = head while(fast ...

二叉树的前序、中序、后序遍历的非递归实现

二叉树的前序、中序、后序的非递归遍历实现 三种遍历的入栈顺序一致,不一样的是根结点的输出时间 前序:当根结点不为空时,根结点入栈,同时输出根结点 中序:当根结点不为空时,暂存根结点,当根结点所有的左子树都遍历完时,输出根节点 后序:当根结点不为空时,暂存根节点,当根结点的左子树和右子树都遍历完时(且左子树要在右子树之前遍历),输出根结点 算法实现 前序: 实现思路: ...

将本地项目上传到github

将本地项目上传到github上面 默认你已经有了自己github账号 新建一个仓库 复制仓库路径,之后会用到 在你要部署到github的项目根目录下面右键打开控制台 执行命令git init 执行命令git add .将本地所有文件提交到缓存区 执行命令git commit -m "提交的信息" 执行命令git remote add origin ...

从零搭建react全家桶脚手架

  从零搭建react全家桶脚手架

从零搭建react全家桶脚手架 init项目 创建文件夹并进入 mkdir react-family && cd react-family 初始化项目 npm init按照提示输入信息 webpack 安装webpack npm install webpack --save-dev --save-dev只在开发环境中依赖的东西 --save发布之后还依赖...

动态规划之背包问题

动态规划 背包问题 关于背包问题,其实有两种情况,第一个是0-1背包问题,第一个是部分背包问题 先来通过一个例子看看二者的区别吧 有一个窃贼在偷窃一家商店时发现N件物品,每一件物品的价格为vi,重量为wi,他希望带走的东西越多越好,但是他的背包最多承重量为W,所以他要尽可能地带走性价比高的物品,他应该要怎么选择? 0-1背包问题: 物品要么被带走,要么被留下,(需要做出0...

React的高阶组件(hoc)

React的高阶组件(HOC) 高阶函数 接受一个或者多个函数作为参数 返回一个函数 不对传入的函数做任何原型上的修改 举个栗子🌰 localStorage.setItem('userName', 'wwj'); const welcome = () => { const userName = localStorage.getItem('userName'); co...