自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 Cookie、Session、Token(没懂的话再看一遍)

Cooike、Session、Token接触了这么久的Web,有必要好好总结下这一块了什么是无状态HTTP协议在网络没有当今这么发达的时代,Web基本就是用于文档的浏览,作为服务器而言也就是根据相应,加载对应的相应就是了,也就是说不需要记录你干了什么,你有什么,我只知道你请求了,我返回就是了,咱们到此结束就是了。每次请求都会是一次全新的请求。当然没有什么状态的存储一说。所谓无状态HTTP协议,就是没有保存状态罢了。会话机制出现在这么一种没有存储的情况之下,随着网络技术的发展,Web也变得越来越强

2020-12-26 02:06:46 378

原创 NodeJS发邮件(你收到了吗)

NodeJS发邮件在项目需求中,大都情况下我们会遇到要发送邮件的情况,比如说验证码呀那么,今天咱们试试用NodeJS发送邮件简介Nodemailer 是一个简单易用的NodeJS邮件发送插件支持Windows环境、Unicode编码、HTML内容、附件(大文件)等等常见的字段:from 发送者的邮箱sender 发送者区域显示的信息to 接受者邮箱cc 抄送者邮箱subject 密送者邮箱html HTML内容header 另外加头消息encoding 编码格式安装npm

2020-12-25 01:18:58 341

原创 RESTful你会用了吗(光知道好没用的)

RESTful通俗的解释:看 URL 就知道要的是什么看 http method 就知道要干什么看 http status code 就知道结果是什么也就是说用URL定位资源,用HTTP描述操作接下来,咱们继续:为什么需要接口规范在前后端分离之后,不同与之前的java+jsp,php+js那般所有的接口都是在一个打的项目中前后端分离之后,项目得到分离,前端关注页面的数据渲染,后端关注数据的处理而这之间的纽带就是API,约定好API之后,大家分开开发,到时候对接接口就是了但是,这也会存在

2020-12-24 01:41:14 321

原创 vuepress简单使用(个人博客何必麻烦自己)

vuepress的简单使用快速上手1.创建目录2.包管理器初始化yarn init # npm init3.安装依赖yarn add -D vuepress # npm install -D vuepress推荐使用yarn4.在package.json中添加一些script "scripts": { "dev": "vuepress dev docs", "build": "vuepress build docs", "deploy":"bash deplo

2020-12-20 01:37:31 675 1

原创 序列比对之动态规划

序列比对问题描述输入:两个序列A和B,其长度分别为m和n输出:A和B的一种比对形式,其满足惩罚函数f(A,B)值最小。(1) 对A和B之间的每一个空隙匹配,计惩罚分2分;(2)对A和B之间的每一个错配,计惩罚分3分;(3)成功配对不计惩罚分最后求解得到最小的罚分值:问题分析1、分析问题的最优子结构性质假设两个序列S1和S2,求他们的最长公共子序列,则:1)S1[i] = S2[j],那么这两个数匹配2)S1[i] != S2[j],S1[i-1] = S2[j],那么S1[i]匹配空

2020-12-18 17:16:49 1855 1

原创 最长公共子序列之动态

最长公共子序列(LCS)问题描述给定两个字符串,求解这两个字符串的最长公共子序列。如: S1={1,5,2,8,9,3,6},S2={5,6,8,9,3,7}其最长公共子序列为{5,8,9,3},最长公共子序列长度为4。思路分析1、分析问题的最优子结构性质因此,两个序列的最长子序列包含了这两个序列的前缀的最长公共子序列。2、建立递推公式3、自底向上求解最优值4、根据计算最优值时得到的信息,构造最优解代码演示#include <iostream>using name

2020-12-18 16:33:21 66 1

原创 矩阵连乘之动态规划

矩阵连乘问题描述:给定n个矩阵{A1,A2,…,An},其中,Ai与Ai+1是可乘的,(i=1,2 ,…,n-1)。用加括号的方法表示矩阵连乘的次序,不同的计算次序计算量(乘法次数)是不同的,找出一种加括号的方法,使得矩阵连乘的次数最小。比如说:A0(5 10),A1(10 100),A2(100 2)不同条件下:(A0 A1)A2 => 5*10*100+5*100*2=6000A0(A1 A2) => 10*100*2+5*10*2=2100问题分析首先矩阵满足结合性,

2020-12-18 13:45:24 320

原创 最大连续上升子序列之动态规划

动态规划之C语言问题:输入一组数据,找出其中最大连续上升子序列长度输出最大连续上升子序列长度打印该子序列12 15 10 18 20 8 16 14 24 18思路采用动态规划的思想,利用一个以为数组s[i]记录原数组中对应位置的最大连续上升子序列的长度比如说:12 15 10 18 20 8 16 14 24 181 2 1 2 3 1 2 1 2 1分别有的连续上升子序列:12 15 ; 10 18 20 ; 8 16 ;14 24;18也就是将

2020-12-16 13:26:59 406

原创 0-1背包之动态规划(附演示动画)

0-1背包之C语言01背包问题应该算是一个很经典的问题了,接下来实现一下问题:现给出一个容量为V的背包和N件物品,每件物品的体积为v[i],价值为c[i],将几件物品装入背包内,使得物品总体积不超过背包体积,并且使总价值最大,求这个最大值?给出一组数据:V = 8,N = 4;i 1 2 3 4v 2 3 4 5c 3 4 5 6解题思路:用 f[i][j] 表示前 i 种物品,背包容量为 j 时的最大价值首先初始化数组 f[][]当 i=1 时,如果背包可以

2020-12-16 01:57:54 582

原创 Git使用(真的有熟悉吗)

Git关于 git 是啥这种我就不多说了,网上挺多的 —— 分布式版本控制系统,也就是能有效地管理项目版本,本文就是在自己学习一段时间之后发现 git 用的还是不是很熟练,故总结一下:主要分为两个部分说一下关于 git1. 基础指南2. 深入了解基础指南安装可以参看之前我写过的文章 Git——从安装到连接GitHub创建仓库创建新文件,打开,执行 git init 用以创建心得仓库克隆仓库执行 git clone 仓库地址 可以克隆远程的仓库提交代码执行 git add 文件名 将

2020-12-15 01:30:18 175

原创 webpack中webpack.config.js的相关配置表

关于webpack打包一个相对比较完整的配置表包括文件入口(单入口、多入口)输出(输出文件名,多个入口对应多个输出、hash值生成文件)资源发布(Url前缀、cdn)导出库chunk文件异步加载配置模块相关loader(配置先后顺序)plugin(别名模块)输出文件性能devserver相关配置const path = require('path');module.exports = { // entry 表示 入口,Webpack 执行构建的第一步将从 Entry 开始,

2020-12-14 11:36:07 103

原创 import和require(你有过疑惑么)

首先关于 import 和 require,这都是模块化编程时常需要使用到的类似于 java 可以直接引用所需的类,而 JS 通过模块化,可以实现这种思想import和require所属规范:require 是CommonJS/AMD中为了解决模块化语法而引入的import 是ES6引入的新规范,需要将es6转换成es5调用时间require 是运行时调用,可以放在任何地方import 是编译时调用,也就是说需要放在文件的开头(比如说在Vue项目中引入组件,需要将import放在 comp

2020-12-14 10:03:57 384

原创 webpack打包(离开脚手架,你还好吗)

webpack打包有关于webpack打包在上一篇博客有说过这里的话主要还是想说说 vue 的打包没有了脚手架,你的项目还好吗?大致的目录结构列一下:关于项目的代码就不贴了,主要还是说下关于打包:const path = require("path");const { VueLoaderPlugin} = require("vue-loader");const HTMLPlugin = require('html-webpack-plugin');const webpack =

2020-12-14 01:34:47 90

原创 webpack再度学习

webpackwebpack致力于打包模块化的 javascript ,在 webpack 一切皆是模块,通过 Loader 转换文件没通过 Plugin 注入钩子,最后输出模块组合成的文件也就是说,所有的文件包括 (sass,ts) 这种都会编译成对应的css、js代码,一切模块中在 webpack 那里都是一个个模块,在方便的情况下(左图中将文件先转换)进行组合打包,经过webpack处理,最后输出浏览器可以使用的静态资源。主要核心模块入口(input)输出(output)loader

2020-12-14 00:46:00 79 1

原创 最大子段和之分治法

最大子段和之C语言问题描述:给定一个数组,找出其中可以构成最大数的子段,需要注意的是,这个不同于最大子序列求和—— 最大字段求和:字段必须是连续的—— 最大子序列求和:子序列只要是包含在原来的序列中即可举个例子:-1 4 -3 1 5 -1 4 -5 2求上述的数组中的最大字段和,不难得知,最大子段和就是 10 ,也就是子段 4 -3 1 5 -1 4思路:首先,枚举?没有枚举解决不了的问题好吧。但是真的枚举么?在时间和空间复杂度上都会有很大的消耗;分治?该怎么分治呢?由于在一个子段中

2020-12-09 16:41:37 4816 2

原创 快速排序之随机快排

随机快排之C语言问题:快速排序大家应该都比较了解了,利用分治法的思想,将原有的数据分成两个部分,递归分治排序。大致有 4 个步骤:首先设定一个分界值,通过该分界值将数组分成左右两部分。将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以

2020-12-09 13:13:56 2171

原创 棋盘覆盖问题,看完这个就好

棋盘覆盖(C语言)问题描述:如何应用分治法求解棋盘覆盖问题呢?分治的技巧在于如何划分棋盘,使划分后的子棋盘的大小相同,并且每个子棋盘均包含一个特殊方格,从而将原问题分解为规模较小的棋盘覆盖问题。k>0时,可将2k×2k的棋盘划分为4个2(k-1)×2(k-1)的子棋盘,如图(a)所示。这样划分后,由于原棋盘只有一个特殊方格,所以,这4个子棋盘中只有一个子棋盘包含该特殊方格,其余3个子棋盘中没有特殊方格。为了将这3个没有特殊方格的子棋盘转化为特殊棋盘,以便采用递归方法求解,可以用一个L型骨牌覆盖这3

2020-12-09 01:45:32 821

原创 稳定匹配问题(脱单就靠这波了)

稳定匹配问题之三国首先,我们先看看问题:有n个男人和n个女人(n>=2),每个男人对所有女人有一个好感度排名,每个女人对所有男人也有一个好感度排名。将男女两两配对,得到n对男女,称之为一个完美匹配。如果有一组男女A和B,他们在匹配中没有被配对,且对对方的好感度均大于对现有配偶的好感度(男人A觉得女人B好过现在的妻子C,女人B觉得A好过现在的丈夫D),则称之为一个不稳定配对。如果一个完美匹配中没有不稳定配对,则称改匹配为一个稳定匹配。|左图是男对女的好感度,右图是女对男的好感度思路:首先,拿

2020-12-09 01:25:31 1025

原创 整数划分实现列项打印

整数划分整数划分:将一个正整数 n 划分成多个大于等于 1 的整数。举个例子,比如说 665+14+2,4+1+13+3,3+2+1,3+1+1+12+2+2,2+2+1+1,2+1+1+1+11+1+1+1+1+1也就是说,6 可以划分成 11 种相加的形式接下来,分析一下本题假设函数 F(n,m) , 其中 n 是需要被划分的整数,m 是划分的加数中的最大数按照这个关系,进行递推当 n = 1,m = 1 时,也就是说此时只有一个数也就是 1,相当于递归出口当 n &lt

2020-12-09 01:00:30 473

原创 关于VS code中的debugger,launch.json如何配置

VSCode中的debugger配置问题2020.11.13Error: Cannot find module 'c:/Users/����/AppData/Local/Programs/Microsoft VS Code/resources/app/extensions/ms-vscode.js-debug/src/bootloader.bundle.js'今天测试Node的时候想试试debugger,但是遇到了上面的问题,这里解决一下但是还是碰到了一些问题,在配置的时候,可以配置两个调试环境,

2020-11-30 17:09:06 2050

原创 Node之CommonJS,为什么模块该这么写

2020.11.14CommonJS规范Node应用由模块组成,采用CommonJS模板规范每个文件就是一个模块,有自己的作用域。在一个文件里定义的数量、函数、类,都是私有的,对其他文件不可见用 global 对象定义的属性可以在多个文件分享变量。CommonJS规范规定,在每个模块内部,module变量代表当前模块,这个变量是一个对象,exports就是一个对外的接口,加载模块的时候其实也就是加载这个模块的属性。特点:所有的代码都运行在模块的作用域,不会污染全局作用域模块可以被多次加载,

2020-11-28 15:39:41 378

原创 NodeJS开篇,再来一遍

2020.11.14Nodejs 的真正用途Nodejs,一个 javascript 的运行环境运行在服务器,作为 web server运行在本地,作为打包,构建工具Nodejs 的困惑Nodejs 运行在服务端,也就是说偏向后端Nodejs 介绍下载&安装(nvm :nodejs 的版本管理工具,可以切换多个 nodejs 版本)mac:brew install nvmwindows:转用 nvm,我们在开发或者使用别人的代码的时候需要注意的一个点就是版本不一致问题这时候 n

2020-11-28 15:37:26 334

原创 一文带你了解回调函数

回调函数在Nodejs中callback可谓是很重要的一部分了,所以有必要把回调函数大致总结一下。回调函数A callback is a function that is passed as an argument to anotherfunction and is executed after its parent function has completed。回调函数就是将这个函数B作为参数传递到另一个函数A中,当那个函数B执行完毕之后,再执行现在的函数,这个过程就是回调。也就是说,

2020-11-28 14:20:18 421

原创 解决nvm安装后,node生效但npm无效

问题昨晚安装nvm时,发现一些坑问题发生文件冲突解决在安装nvm的时候最好先把之前的node和nvm的版本全都卸载掉,这样安装的话会舒服一点,避免文件冲突问题nvm list输出当前的node版本的时候会发现没有对应的版本,或者是说找不到对应的文件,当然也使用不了node了解决安装时,不要放在有空格的文件目录下问题 目前发现 8.11以上版本的node版本对应的npm都没法自动安装,也就是说nvm安装之后,node没有问题,但是没有npm,也就是说npm -v的时候发现在node-mod

2020-11-14 09:25:18 1530

原创 详谈JavaScript原型链

JavaScript原型链JavaScript继承继承一直是面向对象津津乐道的一个重要的概念。主要分为接口继承和实现继承。在JS中只有实现继承,而其中主要就是通过原型链实现的。由此,原型链有多重要就不言而喻了。构造函数、原型、实例先明确几个点(构造函数、原型、实例):每个构造函数都有一个原型对象(prototype),原型对象会有一个指回构造函数的指针(constructor),每个实例都包含一个指向原型对象的内部指针(proto),构造函数通过(new)生成,然后,什么是原型对象?什么是实例

2020-10-13 02:06:25 365

原创 清除浮动(常用的四种方式)

问:为什么要清楚浮动呢?答:由于浮动元素会脱离原来的文档流,不占用页面的空间,导致父元素因为子元素的浮动引起内部高度为0的情况,导致页面显示不正常。用个例子展示一下首先,这是没有使用浮动的情况:,父元素没有设置宽高,但是被子元素的高撑起来了,至于宽的话,我们知道,div是属于块级元素,默认占一行。然后,我们先给小子元素添加浮动,让其脱离文本流,观察父元素的变化。这时候我们观察到,当小子元素脱离了文本流之后,父元素自是根据大子元素(未脱离文本流)的高度进行变化。最后,我们在将大小两个子元素都设置

2020-10-10 01:32:31 2457

原创 Uncaught TypeError: Cannot set property ‘display‘ of undefined解决

Uncaught TypeError: Cannot set property ‘display’ of undefined解决直接上图开始在写代码的时候,想直接利用var sub_mean = document.getElementsByClassName('sub_mean');来获取所有的二级子元素然后有一个比较骚的操作就是想直接实现通过 sub_mean.style.display = "block";直接获取到元素的display属性,奈何自己还是太年轻,这明明就是一个集合的元

2020-09-28 02:15:50 1352

原创 关于Nginx那些事儿

高性能的HTTP和反向代理服务器Nginx内存少、并发能力强,性能优化反向代理正向代理:在浏览器中配置代理服务器,实现客户端对服务器的访问。也就是说,在一般情况下,我们客户端无法直接访问到服务器,需要有那么一个中台作为中间应用实现访问。反向代理:反向代理中,客户端是无知的,不知道是否配置了服务器,我们将数据发到反向代理服务器上去,反向代理服务器选择目标服务器获取数据之后,返回客户端,实现了服务器的隐藏。对外暴露的就是代理服务器。总结:正向代理就是代理客户端,而反向代理是代理服务器。负载均衡在一

2020-09-28 00:03:09 406

原创 Linux虚拟机、服务器上安装MySQL

注意:安装过程需要通过管理员权限安装,否则会提示权限不够

2020-09-27 11:34:53 578

原创 Java的数据类型关于基本数据类型、引用数据类型

Java数据类型Java数据类型概述其中,引用类型是在堆中的,而基本类型是在栈中的1.Java的基本数据类型类型名称类型定义取值范围byte8位有符号整数-128 ~ 127short16位有符号整数-32768 ~ 32767char16位Unicode字符0 ~ 65535int32位有符号整数-2147483648(-23...

2020-09-27 11:34:33 422

原创 C语言函数实现两个数的交换、指针操作

用函数实现属的交换#include<stdio.h>void swap(int x,int y) //这个时候传递的就是值{ int t; t = x; x = y; y = t; //值交换 printf("a = %d\n",x); printf("b = %d\n",y);}int main(){ ...

2020-09-27 11:34:16 2939

原创 JDK下载与环境变量的配置

JDK下载:下载地址:JDK下载地址JDK的安装双击进入JDK的安装界面(记得修改安装路径并记一下,默认是安装到C盘的)点击下一步,如图所示:(这是Jre的路径,最好修改一下安装路径,然后记下来,一会有用 )出现下图中已成功安装就表示安装成功了环境变量的配置** 1.右键我的电脑 > 属性 > 高级系统设置 **2. 开始配置环境变量(1)点击系统变量下...

2020-09-27 11:33:49 441

原创 Vue的属性、事件、插槽

属性自定义属性props ->组件的propos中声明的属性原生属性attrs ->没有声明属性,默认自动挂载在组件的根元素上,inheritAttrs可以关闭自动挂载特殊属性class、style ->挂载到组件根元素上,支持字符串、对象、数组等多种用法子组件为何不可以修改父组件传递的propos?如果修改了,Vue是如何监控到属性的修改并给出警告的?按个人的理解的话:由于单向数据流,属性只能通过父组件传递到自组件,但是不能反过来,至于Vue监控属性的修改给出警告的话,

2020-09-27 11:33:16 526

原创 关于Vuex的那些事儿

vuexvuex是一个专门为Vue.js应用程序开发的状态管理模式,集中式的存储应用的所有组件的状态以相应的规则保证状态以一种可预测的方式发生变化单向数据流State:驱动应用的数据源(单向数据流)View:以声明的方式将State映射到视图(静态的显示出来的数据源)Actions:处理用户在View上面的操作而导致的状态变化(数据源变化追踪)一般文件都是放在store文件下的index.js中import Vue from 'vue'import Vuex from 'vuex'

2020-09-27 11:31:38 363

原创 关于Vue-Router的那些事儿

Vue-RouterVu-router是Vue.js的官方路由管理器,方便于构建页面,在我们的使用过程中,一般是在router的index.js文件中配置对应的组件和对应的路径主要的功能嵌套路由模块化的、基于组件的路由配置路由参数、查询、通配符视图过度效果细粒度的导航控制核心文件router中的index.js文件// 引入vue框架import Vue from 'vue'// 引入vue-router路由依赖import Router from 'vue-router'/

2020-09-26 11:15:47 410

原创 关于Vue-CLI的那些事儿

Vue CLI是基于Vue.js进行快速发展的完整系统,提供了:交互式的项目脚手架实现零配件的原型开发图形化的创建和管理项目的界面基本框架的构建:.├── build/ # webpack 配置文件│ └── ...├── config/ │ ├── index.js # 项目核心配置│ └── ...├── src/│ ├── main.js

2020-09-26 11:15:08 392

原创 关于Vue-loader的那些事儿

什么是Vue-loader一个webpack的加载器,负责将vue组件编译成普通的JavaScript模块。关于webpack的介绍这里呢?用到webpack,在项目的编译打包的过程中,将复杂的 注入依赖的模块 进行打包处理,形成 静态的资源文件。也就是说,我们有很多的JS模块,他们之间相互联系,但是作为浏览器,并不能将其直接运行,所以我们需要将其打包到一个可以通过script标签引入的独立文件。Vue的组件规范一个 *.vue 文件是一种自定义的文件格式,主要包括template\script\

2020-09-26 11:14:12 478

原创 关于Vue的那些事儿

Vue渐进式框架众前端周知,Vue是一套用于构建用户界面的渐进式框架,自底向上逐层应用,关注视图层。那我们就来说道说道:渐进式:声明式渲染->组件系统->客户端路由(router)->数据管理状态(Vuex)->构建工具(npm)所谓的渐进式:我觉得就是渐进嘛,一步一步来,首先Vue给了你核心的Vue核心库,实现最基本的组件系统、双向数据绑定。但是你要新的,强大的功能,可以啊,没有问题,自己添加嘛,逐步根据自己的需求添加相应的插件。就比如说:你需要路由了,你去添加Vue-ro

2020-09-26 11:13:28 388

原创 Vue组件开发,个人博客页面demo

组件化开发首先,组件化开发不是前端所特有的东西。就我个人的理解而言。首先,从字面上去看,组件化开发:也就是将整体分割成一个个小的组件,将整体进行细化就是组件化。 每一个组件都是一个个独立的个体,也就是说,在其他的需要用某一个组件的时候可以复用,大大的避免了重复写相同代码。 从这个地方,我们可以看出,组件化设计就是为了增加复用性、灵活性、提高系统的设计,提升开发效率。组件化的演变这一段呢,我是借鉴别人的说法,到时候自己理解清楚了再来说说自己的想法。在早期的前端开发的过程中,我们会经常使用JQuery,

2020-09-26 11:12:27 601

原创 Linux下安装Nginx(保姆教程)

#本期的博客呢主要就是分享这两天我在学的Nginx,由于使用的是CentOS,遇到了一点坑总结一下,首先就是关于VMware虚拟机上安装CentOS当作服务器主机使用,然后用Xshell远程去访问这个地址(操作有点骚,本机访问本机???但是就是相当于模拟一个服务器的环境吧)第一点呢就是关于远程连接的问题,在网上找了很久都是一些修改啥配置文件巴拉巴拉的,然后我不是这个问题注意一点就是,先查看自己的CentOS服务器的ip(命令ifconfig)然后用Xshell建立连接,这个时候我们主要就是写对信息,

2020-09-26 11:11:10 409

空空如也

空空如也

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

TA关注的人

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