自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木木

keep going

  • 博客(117)
  • 收藏
  • 关注

原创 vite 学习

作者原话Vite,一个基于浏览器原生ESimports的开发服务器。利用浏览器去解析imports,在服务器端按需编译返回,完全跳过了打包这个概念,服务器随起随用。同时不仅有Vue文件支持,还搞定了热更新,而且热更新的速度不会随着模块增多而变慢。针对生产环境则可以把同一份代码用rollup打包。虽然现在还比较粗糙,但这个方向我觉得是有潜力的,做得好可以彻底解决改一行代码等半天热更新的问题。7月13日,Vite3正式发布,它被称为下一代的前端工具链。查看。...

2022-07-18 16:35:38 989 2

原创 Mac OS 下 nvm 的安装与使用

mac os 安装nvm

2022-07-15 15:49:19 2086 1

原创 DBeaver 操作数据库

1.创建数据库新建sql编辑器创建数据库 并查询所有数据 ,需要刷新左侧数据库,表才会出来.2.插入数据插入一列ALTER table lhtest add column address varchar; // 插入列名为addressSELECT * from lhtest; // 查询所有数据 看是否插入成功给指定列添加数据给指定列添加数据 insert into 表名(列名1,)values(值1,),(值1,),(值1,)INSERT i

2022-05-09 12:24:32 6512 8

原创 对称加密和非对称机密

对称加密简介:对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信性至关重要。特点:对称加密算法的特点是算法公开、计算量小、加密速度

2021-04-21 17:07:21 351 4

转载 理解redux

Redux 是React生态中重要的组成部分。很多人都说,简单的应用可以不用此工具。但是我个人认为,中小型应用使用的话,可以使文件结构更加规范,代码可读性更强。因为React提出将展示组件与容器组件分离的思想,所以降低了React 与Redux之间的耦合度。网上广为流传的Redux流向图,可以帮助我们更好地理解并使用。 Redux F...

2019-10-08 16:52:15 272

原创 react 的生命周期

整体上来讲,React生命周期分为了挂载、更新、卸载以及捕错四个状态阶段。每种状态里需要执行若干个生命周期函数,这些函数可能会在不同的阶段里重新被调用。挂载:constructor()constructor方法在组件建立前被调用。在这个方法里面,应该先调用super(props),否则this.props就会未定义。 这个方法的主要用途是,初始化props,...

2019-10-08 15:46:25 626

原创 两个链表相交的一系列问题【js实现】

题目:在本题中,单链表可能有环也可能无环,给定两个单链表的头结点phead1 和phead2,这两个链表可能相交也可能不相交,请实现一个函数,如果两个链表相交,请返回相交的第一个节点,如果不相交,直接返回null要求:如果链表1的长度为n,链表2的长度为m,时间复杂度请达到O(N + M),额外空间复杂度达到O(1)这个问题可以拆分成三个子问题:一:如何判断一个链表是否有环,如...

2019-04-01 09:54:23 577

原创 常见的排序算法(冒泡,选择,快排,插入,希尔)

分类和性能1、稳定排序和非稳定排序简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就说这种排序方法是稳定的。反之,就是非稳定的。比如:一组数排序前是a1,a2,a3,a4,a5,其中a2=a4,经过某种排序后为a1,a2,a4,a3,a5,则我们说这种排序是稳定的,因为a2排序前在a4的前面,排序后它还是在a4的前面。假如变成a1,a4,a2,a3,...

2019-03-14 11:35:05 381

转载 ['1','2','3'].map(parseInt)

为啥子会是这样呢?是因为我没有理解:1)map函数传递参数的定义,2)parseInt函数针对于radix这个参数的理解。通常使用map函数的时候都会传入一个函数,这个函数一般只使用1-2个参数,let arr = ['1','2','3'].map(function(item){ //1个参数 return item;});//["1", "2", "3"]let arr...

2019-03-13 18:55:09 2217

原创 【js版】 剑指offer【16】二叉树的镜像

题目描述:操作给定的二叉树,将其变换为源二叉树的镜像。二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5题目...

2019-03-08 12:13:12 245

原创 【js版】 剑指offer【15】从上往下打印二叉树

题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。题目分析:使用两个队列一个存放节点,一个存放值。先将根节点加入到队列中,然后遍历队列中的元素,遍历过程中,访问该元素的左右节点,再将左右子节点加入到队列中来代码:function PrintFromTopToBottom(root){ // write code here v...

2019-03-08 12:09:58 160

原创 【js版】 剑指offer【14】复杂链表的复制

题目描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)题目分析:代码:function Clone(pHead) { // write code here...

2019-03-06 22:11:58 137

原创 【js版】 剑指offer【13】删除链表中重复的节点

题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5这个不写题目分析了,直接上代码吧代码:function deleteDuplication(pHead) { ...

2019-03-06 16:54:44 377 1

原创 【js版】 剑指offer【12】两个链表的第一个公共节点

题目描述:输入两个链表,找出它们的第一个公共结点,链表的定义如下:function ListNode(x){ this.val = x; this.next = null;}题目分析:从链表的定义可以看出,这两个链表是单向链表。如果两个单项链表有公共节点,那么这两个链表从某一节点开始,他们的next都指向同一个节点。但由于是单向链表的节点,每一个节点都只...

2019-03-06 15:09:12 348

原创 【js版】 剑指offer【11】合并两个排序的列表

题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。题目分析:链表1的头结点的值小于链表2的头结点的值,因此链表1的头结点是合并后链表的头结点。 剩余的结点中,链表2的头结点的值小于链表1的头结点的值,因此链表2的头结点是剩 余结点的头结点,把这个结点和之前已经合并好的链表的尾结点链接起来。代...

2019-03-06 10:06:36 182

原创 【js版】 剑指offer【10】输入一个链表,输出该链表中倒数第k个结点。

题目描述:输入一个链表,反转链表后,输出新链表的表头。题目分析:两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k-1)步,到达第k个节点。然后两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了。。代码: /*function ListNode(x){ this.val = x; ...

2019-03-05 18:54:19 384

原创 【js版】 剑指offer【9】翻转链表

题目描述:输入一个链表,反转链表后,输出新链表的表头。题目分析:1->2->3->4->5,遍历链表,把1的next置为null,2的next置为1,以此类推,5的next置为4。得到反转链表。需要考虑链表只有1个元素的情况。图中有具体的每步迭代的思路,最后输出pre而不是pHead是因为最后一次迭代后pHead已经指向null了,而pre是完整的反向链...

2019-03-05 16:45:46 107

原创 数据结构的学习:使用js实现链表的操作

创建一个链表结构:                                  链表有以下几个特点:可以动态扩展空间(在js中,数组也是这样的,但是有的语言中数组的长度是固定的,不能动态添加,如c语言) 需要一个头节点 需要知道下一个节点的地址  可以将链表中的每个节点看成是一个对象,这个对象中有两个属性,一个是该节点的值,一个是该节点的下一个节点的地址(如果是双链表,还要...

2019-02-21 15:25:13 2648

原创 Xshell使用教程及WinSCP使用教程

1、安装WinSCP安装非常简单,和普通软件安装是一样的选择安装路径,其他默认就行2、连接远程Linux主机,上传和下载文件如下图所示,在打开的页面填写远程主机的IP,用户名和密码,点击保存,会在页面的左边出现一个站点,下次可直接双击该站点,就可以登录到远程主机上了。上传和下载,直接在你想要上传和下载的文件上右键,选择上传或下载就可以,也可以直接用鼠标拖动文件。3、安装Xs...

2019-01-21 11:01:16 7997 1

转载 客户端TortoiseSVN英文版的安装及使用方法

一、客户端TortoiseSVN的安装运行TortoiseSVN程序,点击Next,下面的截图顺序即为安装步骤: 图1: 图2:图3: 图4:点击Finish按钮后会提示重启系统,其实不重启也没有关系。 二、客户端TortoiseSVN的使用方法1、 签入源代码到SVN服务器假如我们使用Visual Studio在文件夹StartKit中创建了一...

2019-01-21 10:38:25 1176 4

原创 使用git stash命令保存和恢复进度

前几天在公司开发的时候,正在我的分支开发,有个bug需要切换到主分支,切换的时候git提醒需要git stash  巴拉巴拉,我就没管,随手打了个git stash  .结果切换回来的时候以前写的代码都没了  一下子慌了。。。。后来在网上查了好多深入的了解了一下 git stash敲了git stash pop 写得东西都回来了 git stash保存当前工作进度,会把暂存区和工...

2018-12-13 10:14:34 1040

原创 git 放弃本地修改,远程分支强制覆盖本地

git fetch --all    //只是下载代码到本地,不进行合并操作git reset --hard origin/分支名如master    //把HEAD指向最新下载的版本git pull //可以省略   

2018-12-13 10:06:04 8799

转载 Git 多人协作开发的过程

Git可以完成两件事情:1. 版本控制2.多人协作开发如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发。如果有多个开发人员共同开发一个项目,如何进行协作的呢。Git提供了一个非常好的解决方案 ---- 多人协作开发。1.多人协作原理典型的做法是,首先创建一个git服务器,被多个人所操作。1.多人协助实现分为如下几个步骤:1.创建一个git裸...

2018-11-12 11:46:05 2778

原创 AngularJs 学习第二篇 之过滤器

AngularJS 过滤器  uppercase 过滤器将字符串格式化为大写: <div ng-app = "myApp" ng-controller = "myCtrl"> <p>姓名为:{{name | uppercase}}</p> </div> <script>

2018-11-06 18:27:52 132

原创 AngularJS 学习第一篇 表达式 指令 模型及作用域

一,AngularJs 指令AngularJS 通过被称为 指令 的新属性来扩展 HTML。AngularJS 通过内置的指令来为应用添加功能。AngularJS 允许你自定义指令。ng-app 指令ng-app 指令定义了 AngularJS 应用程序的 根元素。ng-app 指令在网页加载完毕时会自动引导(自动初始化)应用程序。<div ng-app="...

2018-11-06 16:31:27 123

原创 【js版】 剑指offer【8】斐波那契数列

题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39题目分析: 我们都知道斐波那契可以用递归,但是递归重复计算的部分太多了(虽然可以通过),但是这道题更应该用动态规划来做,动态规划的特点是:最优子结构、无后效性、子问题重叠 代码: function Fibonacci(n){ // wri...

2018-10-25 11:35:11 211

原创 【js版】 剑指offer【7】用两个栈实现队列

题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。题目分析: 入队:将元素进栈A出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并push进栈B,栈B出栈; 如果不为空,栈B直接出栈。栈:先进后出队列:先进先出 代码: var intStack = [], o...

2018-10-25 10:06:18 111

原创 【js版】 剑指offer【6】二叉树的下一个节点

题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。题目分析: 思路:(1) 若该节点存在右子树:则下一个节点为右子树最左子节点(如图节点 B )(2) 若该节点不存在右子树:这时分两种情况:2.1 该节点为父节点的左子节点,则下一个节点为其父节点(如图节点 D )2....

2018-10-24 11:28:33 316

原创 【js版】 剑指offer【5】重建二叉树

题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回题目分析:首先,我们看看前序、中序、后序遍历的特性: 前序遍历:     1.访问根节点     2.前序遍历左子树     3.前...

2018-10-23 10:56:19 147

原创 【js版】 剑指offer【4】从尾到头打印链表

题目描述:输入一个链表的头结点,从尾到头反过来打印出每个节点的值通常打印是一个只读操作,我们不希望打印时修改内容首先我们想到解决这个问题肯定是要遍历链表,遍历的顺序是从头到尾,可输出的顺序是从尾到头,也就是说,第一个遍历到的节点最后一个输出,最后遍历到的节点第一个输出,这就是典型的“后进先出”,我们可以利用栈实现这种顺序。每经过一个节点的时候,就把该节点放到一个栈中,当遍历完整个链表...

2018-10-09 16:37:03 337

原创 【js版】 剑指offer【3】替换空格

题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。可以选择用正则function replaceSpace(str){ return str.replace(/\s/g,'%20')} 问题1:替换字符串,是在原来的字符串上做替换,还是新开辟一个字...

2018-10-09 09:51:03 183

原创 【js版】 剑指offer【2】二维数组中的查找

题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。利用二维数组由上到下,由左到右递增的规律,那么选取右上角或者左下角的元素array[row][col]与target进行比较,当target小于元素array[row][col]时,那么target必定在元...

2018-10-02 08:56:22 297

原创 【js版】 剑指offer【1】数组中重复的数字

题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 可以排序后,比较前后数字是否相同来做,不过这种方法时间复杂度不行,故舍去  由于数组里的所有数字都在0到n...

2018-10-01 21:21:54 404

原创 js设计模型之------观察者模式

观察者模式 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知  实现:var Event = (function(){ var list = {}, listen, trigger, remove; listen = function(key,fn){ //监听事件函数 ...

2018-09-27 09:16:27 566

原创 vue-cli脚手架中webpack配置基础文件

前几天面试问了基础文件的作用,只说了几个,特来整理一下一、主体结构├─build ├─config ├─dist├─node_modules├─src│ ├─assets│ ├─components│ ├─router│ ├─App.vue│ ├─main.js├─static├─.babelrc├─.editorconfig├─.gitignore├─.p...

2018-09-12 09:31:38 364

原创 Node.js Express学习

Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。 定义了路由表用于执行不同的 HTTP 请求动作。 可以通过向模板传递参数来动态渲染 HTML 页面。 一.安装1.通过 npm init 命令为你的应用创建一个 package.json 文件 npm init2.此命令将要求你输入几个参数,例如此应用的名称和版本。 你可以直接按“...

2018-09-09 19:16:16 443

原创 webpack学习笔记(踩坑)

一、什么是webpack是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面...

2018-09-09 15:49:03 781

原创 Vuex的使用方法第三篇之mapMutations,mapGetters、mapActions

很多时候 ,$store.state.count、$store.dispatch('add')这种写法又长又臭 , 很不方便 , 我们没使用 vuex 的时候 , 获取一个状态只需要this.count, 执行一个方法只需要this.add就行了 , 使用 vuex 使写法变复杂了 ?使用mapState、mapGetters、mapActions就不会这么复杂了。以...

2018-09-08 17:31:23 3659

原创 Vuex的使用方法第二篇之mutation和action及getter的基本使用

mutations在vue 中,只有mutation 才能改变state. mutation 类似事件,每一个mutation都有一个类型和一个处理函数,因为只有mutation 才能改变state, 所以处理函数自动会获得一个默认参数 state.所谓的类型其实就是名字,先看上一篇文章的例子:在没有用vuex的时候,我们可以实现点击颜色切换用了vuex后,只实现了颜色变换一次...

2018-09-08 15:26:25 6057 2

原创 Vuex的使用方法第一篇之初识Vuex

什么是Vuex?uex是一个专门为vue.js设计的集中式状态管理架构。状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态。简单的说就是data中需要共用的属性。vue项目当中的父子组件的交互是单通道传递,父组件通过props向子组件传递参数,而在子组件当中不不能直接修改接收的参数,而是需要通过自定义事件的方式,例如:父组件:<templ...

2018-09-08 12:08:36 342

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除