自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宫小白

不知则问,不能则学

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

原创 来开发一个比较规整的九宫格抽奖~

奖项数据是必不可少的 「九宫格抛弃抽奖按钮占去一个外,还剩下8个」抽奖运动的时间抽奖完成之后的回调是否需要自定义概率time?: number;: boolean;callback?}至于奖项数组,每一个奖项的属性则定义为奖品id 「必要」奖品描述 「必要」奖品抽中概率 「非必要」背景色、图片 「这些样式先忽略哈」: number;}比如 一个数据 【苹果🍎,香蕉🍌,梨🍐】要求随机抽,并且抽中苹果🍎的概率要达到80%,其他各10%。这要啷个搞么。

2022-11-24 23:34:42 658 1

原创 常见的跨域及其解决方法

跨域1. jsonpjsonp实现跨域的原理就是利用一些可以请求资源的标签,像script,img这类的标签它们请求资源是没有域的限制的。实现客户端<script> function myFunction(data) { console.log(data); } </script> <script src="http://localhost:3000/test?callback=myFunct

2020-06-13 16:56:50 367

原创 手写 call、apply、bind

从this的隐式绑定入手我们都知道函数中this的指向只取决于该函数的调用位置,且其有四种绑定形式。即默认绑定隐式绑定显示绑定new绑定而显示绑定是借用了一些方法。如call、apply,bind。但是它们的怎么实现是基于隐式绑定基础之上的先来看什么是隐式绑定,看下面代码:function foo() {console.log( this.a );}var obj = {a: 2,foo: foo};obj.foo(); 全局情况下的默认绑定之所以绑到了全局,是因为函数

2020-06-04 23:38:10 224

原创 牛客——剪绳子(66题)

本题主要考察的思想是:贪心或者动态规划,这两种算法思想感觉还是比较相似的,但是这一类的题主要是找到规律吧题目描述给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]xk[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入描述:输入一个数n,意义见题面。(2 <= n <= 60)输出描述:.

2020-06-04 09:49:24 361

原创 牛客——对称的二叉树

ps:因为近阶段时间比较紧,除了比较难搞的就不怎么写思路了题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路递归不解释了实现:/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function isSymmetrical(pRoot){ // write code here

2020-06-03 09:12:17 141

原创 js版数据结构_09 二叉堆

ps:再来实现一个非常重要的数据结构 ——二叉堆知道导航:什么是二叉堆二叉堆的具体实现(以最小堆为主)那什么是二叉堆呢?首先二叉堆它是一种特殊的二叉树,它有两个特性它是一棵完全二叉树,表示树的每一层都有左侧和右侧子节点(除了最后一层的叶节点),并且最后一层的叶节点尽可能都是左侧子节点,这叫作结构特性。二叉堆不是最小堆就是最大堆。最小堆允许你快速导出树的最小值,最大堆允许你快速导出树的最大值。所有的节点都大于等于(最大堆)或小于等于(最小堆)每个它的子节点。这叫作堆特性额。。.

2020-05-30 19:32:01 289

原创 牛客——二叉树的镜像

ps:今天做一个简单的题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树8/ 6 10/ \ / \ 5 7 9 11镜像二叉树8/ \10 6/ \ / \11 9 7 5题目分析这就是传统的交换两个变量的值嘛,即借助第三块空间完成交换。流程还是递归代码实现/* function TreeNode(x) { this.val = x; this.left = null; this..

2020-05-28 09:37:27 102

原创 牛客——二叉搜索树与双向链表

题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。题目分析这道题怎么说呢,牛客标它的难度是最低的这我是不太认同的。首先从题目描述来看,不读个3、4遍可能不知道它是什么意思,同时又考察了链表和二叉树这两种结构。嗯不知道牛客难度标记是不是越小越不好做,很魔性。正题:先来看一棵简单的二叉搜索树由他变成一个有序的双向链表还是比较简单的。如下图:接下来升级二叉搜索树的复杂程度他怎么变呢?先变简单的把它的子树先转成链表接

2020-05-27 09:37:00 209

原创 牛客——从上往下打印二叉树

题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:害,这不就是树的层次遍历吗。循环借助辅助数组存放当前层。代码实现:(ps:不要忘记前期判断,我开始没每判断搞了十分钟都不知道哪错了,千万不要偷懒呀)/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */ function PrintFromTopToBottom(root) {

2020-05-26 09:56:20 754

原创 牛客——重建二叉树

ps 重新开启每日刷题了题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。题目分析:这其实是一个我们非常熟悉的二叉树问题,根据先中,或后中重建二叉树。手写时它的思路是这样的:先序判根中序判左右。(这里就不会手写的了,毕竟它在数据结构中也是蛮简单的题型)举例:题目中先看先序,1肯定是它的根节点、接下来找.

2020-05-25 09:29:45 192

原创 js版数据结构_08 二叉搜索树

知识点:什么是二叉搜索树实现ps:写在前面,树的结构虽然比前面的复杂一点,但是呢只要会用递归其实还是很简单的。理解递归也是蛮简单的,不信画个执行栈走走。这一节我本来打算是只把代码放上来的,因为除了一个删除比较复杂点别的就是跟着逻辑写,所以文字描述显得比较应付。看代码吧,代码思路写的还是没毛病的1. 二叉搜索树二叉树我们都很熟悉,二叉搜索树是在二叉树的基础上又做了一下规定。即只允许你在左侧节点存(比父节点)小的值,在右侧节点存储(比父节点)大的值。创建二叉搜素树类: class Bina

2020-05-13 22:46:54 151

原创 WEB架构师学习笔记_Vue_03简单实现Vuex

知识导航vuex的使用Vuex的基本实现1. vuex的使用Vuex想必我们都很熟悉了,它就是实现全局状态的一种管理机制。即可以实现所有组件共享同一数据。1.1 实例化store时传入的参数state:放数据;mutations:改变数据的一些方法;{ state: { count: 0 }, mutations: { add(state, a) { state.count += a; },

2020-05-13 11:24:33 199

原创 WEB架构师学习笔记_Vue_02 手写一个路由

知识导航:路由重要知识点手写一个路由知识点(建议最后看,放到是为了方便复习)1. 路由重要知识点vue-router对于写过vue的人想必是很熟悉了,所以这里忽略它的一些基本用法了。1.1 动态路由所谓动态路由就是类似那种restful接口对接形式,即以/demo/:id,即可匹配到demo路由同时可在demo路由下的组件中拿到传过来的id值。示例:路由配置中:{path: "/",component: Home,children: [{ path: "", name: "

2020-05-10 12:16:59 271

原创 WEB架构师学习笔记_Vue_01组件化常用技术

ps:本系列博客稍微偏向原理,若只想用法那官方文档最合适不过了。知识导航:组件通信插槽手写elementui表单1. 组件通信1.1 父到子方式一:利用属性props此方法的核心是props,那么先来简单介绍它。props的作用接收父组件传递过来的数据。它有两种类型,即数组或对象,而对象是被允许做一些高级配置的,如规定prop的类型、指定初始值、设置为该prop是否必填、...

2020-05-06 01:06:18 196

原创 js版数据结构_07散列表

js版数据结构_07散列表ps:今天晚上写之前没考虑这一节代码量的问题,为保证时间没有测试。但是主要都是逻辑问题,看逻辑便ok知识点散列表什么hash表的基本实现hash表完善之使用分离链接hash表完善之使用线性探查1. 散列表找的这两个图比较能体现散列表的特点,我们至今已经总结了不少的数据结构。但是回想一样在他们的取值实现中,我们为取到一个值往往是要对整个结构进行遍历。...

2020-04-17 22:56:34 198

原创 http学习笔记——章节02_初步了解http

知识点:http通信初识无状态和资源定位http相关方法持久连接和管线化使用cookie进行状态管理1. http通信初识两台计算机使用http进行通信时吧,在一条通信路上必定有一端为客户端,另一端为服务器端通信方式为:客户端发出请求信息,服务器接收请求并返回响应信息1.1 先来看请求信息GET /index.htm HTTP/1.1 Host: hackr.jp起始...

2020-04-17 10:46:37 128

原创 js版数据结构_06 字典

js版数据结构_06 字典本篇博客知识点:什么是字典相关方法的实现1. 什么是字典上一篇博客我们总结了集合,知道集合就是存放了一组互不重复的元素。字典和它相差不多,只不过集合里面只是保存了值,而在这里是以键值对的方式保存的与集合的实现相同,这里我们还是使用对象作为字典结构的数据容器。创建字典类:class Dictionary { constructor...

2020-04-16 19:00:30 109

原创 js版数据结构_05集合(2)

js版数据结构_05集合(2)本篇博客知识点:实现集合的基本运算写在前面:集合在数学中是一个很重要的概念当然在计算机领域中也是非常重要数据库就是它的一个典型应用如:写一条sql的查询语句便可以指定获取的全部数据集合还是它的子集,也可以获取两张表上的共有数据(交集)等等接下来要实现的运算并集交集差集子集正题:基本运算的实现1. 并集 A∪ B定义:A∪ B = {...

2020-04-15 17:29:42 95

原创 http学习笔记——章节01_TCP/IP

先来回顾http中用到的 TCP/IP 协议族简介:web使用http(超文本传输协议)作为规范,完成从客户端到服务器端等一系列运作流程。可以说web是建立在http协议上进行通信的最初设想的基本理念 :借助多个文档之间的相互关联形成的超文本,连成可相互参阅的万维网​ 现在已经提出了三项www的构建技术,分别是把SGML ( StandardGeneralized Markup ...

2020-04-15 11:08:37 184

原创 js版数据结构_05集合(1)

js版数据结构_05集合(1)ps : 集合这种数据结构相对比较简单,所以就不用过多写些解释了本篇博客知识点集合的基本概念功能实现1. 什么是集合集合:由一组无序且唯一的项组成,它与数学中集合的概念基本相同。以数学中的集合为例:如:一个由大于或等于 0 的整数组成的自然数集合: N = {0, 1, 2, 3, 4, 5, 6, …}集合这个数据结构相比于与链表好理解很多...

2020-04-14 14:09:40 95

原创 js版数据结构_04链表(3)

js版数据结构_04链表(3)本篇博文知识点循环链表(由于上篇是双向链表故这里以双向循环链表为例)1. 循环链表上篇总结了双向链表,而循环链表则是对链表的进一步改进。使得它们可以头连尾,尾连头。构成一个闭环。同样,它的很多操作是和单链表是一样的。在这我们只看它们任意位置插入和任意位置删除两个方法insertX(e, index): insertX(e, index) { ...

2020-04-09 22:57:14 89

原创 js版数据结构_04链表(2)

js版数据结构_04链表(2)在本篇博文我会总结到:双向链表循环链表有序链表1. 双向链表上一篇我们总结了单链表的实现,体验到了它的灵活性。但是它有一个很大的缺点,相信大家已经体会到了,就是使用它取数据无论取哪一个都得从头节点开始找,并且如果我们目前的位置在链表中的一个节点上我们是没有办法取到它前一个节点的数据。为了弥补这一不足,双向链表迈着潇洒的步子向我们走过来了。什么是双...

2020-04-08 12:12:07 94

原创 js版数据结构_04链表(1)

js版数据结构_04链表(1)从本篇开始我将用三篇博文写总结js对链表的操作在本篇博文你会了解到:什么是链表单链表的实现1.什么是链表这种东西有什么优点,先说说数组。所有的高级语言都有数组这一数据结构吧,我们都清除数组是一块地址连续的储存单元。以c为例,声明数组的变量名便是储存了这片连续空间的首地址。因为它连续我们可以很方便的存取数组中的每一个元素,但是我想增删元素呢。它的...

2020-04-05 00:56:38 109

原创 js版数据结构_03循环队列队列

js版数据结构_03循环队列队列写在前面,虽然代码在编写中测试均已实现。但小白水平有限。未免有考虑不周在本篇博文你会了解到:循环队列队列相关应用:回文检查1. 循环队列的实现所谓循环队列,不过是普通队列的一种变种。它将普通队列的首尾进行连接使其构成逻辑上的环形结构,因为队列的大小是固定的所以可以更简单防止伪溢出的发生。下面来看实现吧(还是老样子,私有成员变量课第一章,还是主...

2020-04-04 13:53:38 235

原创 js版数据结构_02队列

js版数据结构_02队列代码均经过测试,但小白太白难免不足在本篇博文你可以了解到队列是什么东西双端队列队列和栈是十分相似的,只不过栈的特点是先进后出,而队列的是先进先出1 队列是什么队列是遵循先进先出(FIFO)原则的一组有序的项,它的操作可以在两端进行。即:队尾进,对头出写在前面: 未完善哦,像私有成员变量的这种仿照第一节。毕竟我们要先学会思想创建这个队列的类吧...

2020-04-03 21:29:29 95

原创 js版数据结构_01 栈

js数据结构系列 栈1. 什么是栈简单理解:栈这种数据结构应该算是很简单的了吧,它的特点就是在于先进后出(LIFO)。如上图,一端为栈底,一端为栈顶。并且无论出栈还是入栈的操作都是发生在栈顶。一个栈的数据结构应该具有以下操作:push 出栈pop 入栈peek 返回栈顶元素isEmpty 判空clear 清除栈中元素size 返回栈中元素个数2. 实现一个栈在...

2020-04-03 00:08:49 119

原创 token的生成与验证

写在前面,最近在写自己毕业的东西。由于采用的是前后端分离的写法。为了方便写使用的是跨域的模式。所以cookie、session就不好用了。所以记录一下token吧。夜太深了,就简单写一下用法吧(官方文档写的很全了)使用场景:用户成功登陆之后,返回客户端相应数据的同时。生成token一并返回1. 生成安装第三方模块:npm install jsonwebtoken导入的话就不用说了吧。...

2020-03-20 00:44:51 1588

原创 node联合echarts简单实现疫情地图

基本步骤:node爬取数据获取标准数据前台数据标准化展示效果展示:利用node爬取数据爬取网站:丁香网所要使用的node第三方模块 01 superagent用于向目标网站发送请求并带回数据。 02 cheerio可将返回的数据转为Jq的DOM树。方便操作数据利用superagent向目标网站发送请求。(ps:superagent为promise对象)先让我们来看看它...

2020-03-03 12:58:56 2424

原创 每日刷题_牛客_跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。主要思路如果你刚看完上到的斐波那契数列,再看这道题是不是有些熟悉。没有?高数中有个很牛皮的找规律方法。相信你一定知道它是啥 。【数学归纳】但大致看一下首先看跳第一级。只要一种方法跳第二级有。2种跳第三级呢。先看是怎么跳上第三级的。它可是是从3-1级跳的,也可...

2020-02-26 12:41:12 157

原创 每日刷题_牛客_斐波那契数列(非递归)

ps 这道题可能都被当例子讲烂了。不过在这里用这个我是为下一个题做铺垫题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39主要思路斐波那契数列:0 1 1 2 3 5 …(f(n-2)+f(n-1))即在第三项及之后的每一项。都是它的n-1项 + n-2项。所以你可能想过了递归。但是很遗憾的告诉你传统的递...

2020-02-26 11:54:25 157

原创 每日刷题_牛客_旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。主要思路我猜这道题就是考我们的阅读理解,解释一下什么是翻转数组。结果貌似没卵用,不就是求一个数组中的最小值吗...

2020-02-26 11:08:43 167 1

原创 leetcode 之每日刷题_有效的括号

有效的括号 今天来一个easy难度的吧。字符串的问题题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true...

2020-02-25 18:39:03 103

原创 每日刷题_牛客_数组中重复的数字

事件还早,再来一个简单的吧题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。主要思路拿一个辅助数组先将所给数组的第一个值给它,遍历所给数组的同时。拿遍历的当前元素...

2020-02-24 22:07:40 150

原创 每日刷题_牛客_栈的压入、弹出序列

开题前牢骚:强力感觉牛课的题目感觉跟阅读理解一样。你得猜,请看下题题目描述:题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)(...

2020-02-24 21:09:57 114

原创 Express快速开发

知识导航:express初体验use中间件的使用get 参数获取post参数获取路由参数设置与获取错误中间件开放静态资源基于 Node.js 平台,快速、开放、极简的 Web 开发框架1. express初体验利用express创建服务器。const express = require("express");const app = express();// 路由...

2020-02-24 12:40:47 966

原创 每日刷题_牛客_删除公共字符

题目描述题目描述输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”输入描述:每个测试输入包含2个字符串输出描述:输出删除后的字符串示例1输入They are students.aeiou输出Thy r stdnts.解题思路ps:牛课对...

2020-02-23 11:37:22 361

原创 每日刷题_牛客_替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。注意思路什么这题也要思路,这比1+1=2难不了多少吧。可能有人问那为什么还有做?ps:就当复习一下正则也未尝不可吧。代码function replaceSpace(str){ // write code here...

2020-02-23 11:21:55 92

原创 leetcode 之每日刷题_卡牌分组

题目描述给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。示例 1:输入:[1,2,3,4,4,3,2,1]输出:true解释:可行的分组是 [1,1],[2,2],[3,3],[4,4]示例 2:输入:[1...

2020-02-23 01:10:35 357

原创 leetcode 之每日刷题_水一道题

ps:因为昨天说了今晚上要做两个的,因为昨天那道题的bug今天也没有想通刚刚发了一道了。便再水一道吧题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9...

2020-02-20 21:35:08 187

原创 leetcode 之每日刷题_反转字符串中的单词 III

ps:今天刚总结完mongodb的基本内容。偷个懒,来个简单的题目描述给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: “Let’s take LeetCode contest”输出: “s’teL ekat edoCteeL tsetnoc”注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。思路:把该字...

2020-02-20 21:27:37 112

空空如也

空空如也

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

TA关注的人

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