自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 同一个svg渲染不同

同一svg在Tab切换渲染不同问题的解决

2022-08-18 17:28:27 271 1

原创 类型体操 | typescript炫技 | 练习题

类型体操两数之和包括定义加法 减法 获取数组除了第一个元素尾部 数组转联合类型// ts => LeetCode第一题: 两数之和type TwoSum<A extends number[], T extends number> = A['length'] extends 0 ? false : Sub<T, A[0]> extends Arr2Union<Tail<A>> ? true : TwoS

2022-05-12 04:45:58 487

原创 啃硬骨头之接雨水

挑战一下传说中的hard接雨水题目:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。动态规划思路木桶原理: 两片木板围成的区域能接住的水取决于较矮小的那片height[i]头上能接住的雨水等于height[i]

2022-05-02 21:56:01 333

原创 块级元素和行内元素

常见块级元素div, h1~h6, p, form, ul, li, ol, dl, address, hr, menu, table常见行内元素a, span, label, strong, em, br, img, input, select区别块级元素会独占一行,其宽度自动填满其父元素宽度行内元素不会独占一行,相邻的行内元素会排列在同一行里,知道一行排不下,才会换行,其宽度随元素的内容而变化块级元素可以设置 width, height属性,【注意:块级元素即使设置了宽度,仍然是独

2022-04-17 15:10:56 278

原创 create-react-app的坑

情境今天在创建一个react+ts项目时,发现创建不了,提示版本低,常规npm install是无效的。同事npm uninstall也无效解决使用which create-react-app查找cra的位置找到之后使用rm -rf删除后重新安装结果rm也无效,提示没有权限使用管理员身份删除sudo rm -rf /usr/local/bin/create-react-app然后重新安装即可...

2022-02-13 17:30:41 278

原创 js大数相乘

情境请你帮忙给从 1 到 n 的数设计排列方案,使得所有的「质数」都应该被放在「质数索引」(索引从 1 开始)上;你需要返回可能的方案总数。由于答案可能会很大,所以请你返回答案 模 mod 10^9 + 7 之后的结果即可。一道简单题,遇到了大数相乘的情况,发现js的大数相乘,然后模10^9 + 7结果并不准确怎么模都不准确,在所有可能出现大数的地方添加模/** * @param {number} n * @return {number} */var numPrimeArrangeme

2022-02-10 11:19:33 534

原创 js多次调用正则test()

事情是这样的三目运算符里面用到正则的一个判断const reg2 = new RegExp(/^[a-z]+[!,.]?$/g)console.log('reg2.test(cat) :>> ', reg2.test('cat'));let aaa = 1 aaa = reg2.test('cat') ? 3 : 666console.log('aaa :>> ', aaa);控制台 =>???一开始我以为是三目运算符的计算顺序问题,特意去学习了一下a

2022-01-27 15:46:14 1245 1

原创 从洗牌说起的...

leetcode上做到这题:给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。实现 Solution class:Solution(int[] nums) 使用整数数组 nums 初始化对象int[] reset() 重设数组到它的初始状态并返回int[] shuffle() 返回数组随机打乱后的结果输入[“Solution”, “shuffle”, “reset”, “shuffle”][[[1, 2, 3]], [], [], []]输出[null, [3, 1,.

2021-12-06 10:46:43 172 1

原创 umi+dva使用心得

在umi中使用sassumi天然支持less和css如果想要使用sass,需要安装插件以及配置1、安装umi的sass插件yarn add @umijs/plugin-sass2、安装sass依赖yarn add sass-loader node-sass3、在.umirc.ts中配置 sass: { implementation: require('node-sass'), },或者sass: {}经过上述步骤,我发现在引入.sass文件的时候还是会出现一个se

2021-11-17 17:04:07 451

原创 在umi中使用sass

umi天然支持less和css如果想要使用sass,需要安装插件以及配置1、安装umi的sass插件yarn add @umijs/plugin-sass2、安装sass依赖yarn add sass-loader node-sass3、在.umirc.ts中配置 sass: { implementation: require('node-sass'), },或者sass: {}经过上述步骤,我发现在引入.sass文件的时候还是会出现一个selint报错在typ.

2021-11-10 17:14:54 1183

原创 学习js数据结构 | 字典

/** * 字典 * 方法 * set(k,v) 向集合中添加元素 * hasKey(key) 查看某个元素是否存在于字典中 * remove(key) 删除某个键值对 * get(key) 获取key对应的value * clear() * size() * isEmpty() */class myMap { constructor() { this.item = {} this.count = 0 } hasKey() { return item

2021-11-03 21:44:40 103

原创 学习js数据结构 | 集合

两种方式的实现集合setclass/** * 集合 * * 方法: * * add(element) 向集合添加一个元素 * delete(element) 从集合中删除一个元素 * has(element) 集合中是否存在这个元素 * clear() 删除集合中的所有元素 * size() 返回集合中的元素个数 * values() 返回一个数组,包含集合中的所有元素 */class mySet { constructor() { this.items = .

2021-10-31 16:43:46 59

原创 学习js数据结构 | 队列

队列 基于对象实现对象实现相比数组实现的优点: 更少的时间消耗、空间消耗移除队首元素在数组中需要O(n)时间,因为所有元素都前移并且数组底层需要记录index维持的前后顺序对象的属性为顺序,属性值为队列中的元素,来记录前后顺序/** * 队列(基于对象) * 优点:相对数组实现,更快的存取速度,因为移除队首元素需要O(n)时间 * * 方法: * enqueue() 向队列尾部添加元素 * dequeue() 移除队首元素 * peek() 返回队列首元素 * isEmpty.

2021-10-30 00:36:42 56

原创 学习js数据结构 | 栈

javascript语言实现基础的数据结构系列——01 栈方法: push 传入一个或几个元素到栈顶 pop 删除栈顶的一个元素 peek 返回栈顶元素,不修改栈 isEmpty 栈是否为空 clear 清除所有元素 size 栈的元素个数基于数组实现栈/** * 栈 * * 基于数组 * * 方法: * push 传入一个或几个元素到栈顶 * pop 删除栈顶的一个元素 * peek 返回栈顶.

2021-10-27 21:55:52 89

原创 管中窥豹 | 一道题的六种解法吃透动态规划

LeetCode 64.最短路径和给定一个包含非负整数的 m x n 矩阵 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。类似题剑指offerII 47.礼物的最大价值LeetCode 120.三角形最小路径和动态规划的经典题设dp[i][j]表示从起点到当前格子走过的最短路径和;状态转移方程易得:dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]注意一下边界.

2021-10-09 00:04:56 242

原创 手写Promise

手写一个Promise采用ES5 IIFE格式/** * 自定义myPromise函数模块 * * ES5 IIFE * * Isaac_Jeeen 2021_09_27 */(function (Window) { const PEN = 'pending' const RES = 'resolved' const REJ = 'rejected' /** * 执行器函数 * @param {function} executor */.

2021-09-27 22:29:14 55

原创 自定义百度地图style样式

使用百度地图的开放式开发接口的时候,可以自定义地图样式默认样式朴实无华,毫无特色使用了自定义的地图样式之后(可以修改配色以搭配整体项目氛围????????????????????????????????????????????☘️????)流程1、注册成为百度开放开发者2、编辑自己需要的样式,发布生成id已有的各种各样的样式模版3、可以自己创建 or 修改styleJson4、在项目中调用a. 调用id:map.setMapStyleV2({styleId: '一串哈希值I

2021-09-15 15:57:05 2391 1

原创 Git拾贝

虽然对Git有过简单学习,但是日常使用中依旧出现了大大小小的问题,本文用以记录这些点,一则加深使用熟练度,再则作为问题小字典,时时勤拂拭。因为是零散的记,故拾贝以题之。MAC的zsh终端git指令简写更多指令缩写:https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/git/git.plugin.zsh本地分支落后版本,删除删除本地分支的时候,发现报错,如下⬇️error: The branch 'xxx' is not fully.

2021-09-14 10:20:01 132

原创 vue脚手架组件引入报错:Unknown custom element: - did you register the component correctly?

脚手架中引入自定义的组件的时候,终端没有报错,但是浏览器的控制台报错vscode终端正常浏览器控制台经过我耐心的查找,错误原来是App.vue中注册组件的时候components写错了!!!此处拼写错误页面是不会有提示的!!!另一种可能的错误是引入路径中的components 写成conponent...

2021-08-16 22:46:00 773

原创 JavaScript高级自学小记

前言:本笔记是在JavaScript基础上的JavaScript高级自学笔记,全文约一万一千字主要内容:数据类型的深入;原型链;继承;待完善部分:组合继承、组合+寄生继承;浏览器线程;最后更新时间:2021/08/03数据类型基本类型stringnumberbooleanundefinednull引用类型(对象类型)objectfunction(特别对象,可执行)array(特别对象,内部数据有序)判断数据类型typeof返回数据类型的字符串不能

2021-08-03 05:11:02 229

原创 React取色器组件

react-color组件ant-design上居然没有取色器相关的组件。从github上找到一个下载安装:npm install react-color --save页面引入:import { SketchPicker } from 'react-color'调用组件:<SketchPicker onChange={handleColorChange} color = {materialColor.color}/>事先设置颜色状态const [materialColor, setM

2021-07-27 00:50:37 985

原创 promise详解[上]

摘要本文是promise详解的[上]第一章绪论本章包括实例对象与函数对象的概念;同步异步概念;报错的类型和信息等第二章promise的理解和使用本章包括promise的基本流程;promise相比传统纯回调方式的优点;promise的基本API使用;promise的几个关键问题(重难点!!!)第一章 绪论区别实例对象与函数对象实例对象:new关键字产生的对象,称为实例对象,简称为对象函数对象:函数是一种对象,将函数作为对象使用,称为函数对象括号左边是函数.左边是对象函数也是一种.

2021-06-20 23:00:36 156 1

原创 javascript | 一道题熟悉splice()/slice()/split()方法

小白刚开始学javascript的时候,对splice()/slice()/split()总是混淆借助这样一道题为例搞懂这三种方法给你一个 打乱顺序 的句子 s ,它包含的单词不超过 9 个,请你重新构造并得到原本顺序的句子。比方说,句子 “This is a sentence” 可以被打乱顺序得到 “sentence4 a3 is2 This1” 或者 “is2 sentence4 This1 a3” 。输入:s = “is2 sentence4 This1 a3”输出:“This is a

2021-06-16 04:31:55 114

原创 VSCode使用nodemon运行服务器报错:在此系统上禁止运行脚本

摘要nodemon是一个自动启动服务器的工具当我们原本使用node xxx.js开启服务器时,改变xxx.js中的代码便需要重新启动,十分的麻烦使用nodemon可以自适应的启动服务器但是安装完使用的时候编辑器会报错:在此系统上禁止运行脚本报错内容nodemon : 无法加载文件 C:\Users\HP\AppData\Roaming\npm\nodemon.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID.

2021-06-15 23:12:17 2779 5

原创 JavaScript函数的arguments对象

JavaScript中函数的参数和其他语言的不同。ECMAScript函数不关心传入的参数个数,也不关心参数的数据类型定义函数的时候接收n个参数,可以调用任意个参数function关键字定义的函数在function关键字创建的函数内部,可以访问arguments对象arguments对象是类数组对象(不是Array的实例)可以使用arguments[0]、arguments[1]等也可以使用arguments.lengthECMAScript函数的参数只是为了方便写出来的,不是必须写的fu

2021-06-13 01:59:03 192

原创 JavaScript重难点之原型

原型每个函数都会创建一个prototype属性,这个属性是一个对象,这个对象包含由特定应用类型创建的实例共享的属性和方法。这个对象就是通过调用构造函数创建的实例对象的原型。原型模式和构造函数模式创建实例的区别// 构造函数模式function Dog(name,age) { this.name = name; this.age = age; this.sayname = function() { console.log(this.name); };}

2021-06-04 11:30:45 64 3

原创 计算机网络 | HTTPS、对称非对称加密方式 | [4]

摘要本章主要介绍了从HTTP到HTTPS;对称加密(共享密钥)和非对称加密(公开密钥);以及身份认证方式;未完待续额~从HTTP到HTTPSHTTP的缺点通信使用不加密的明文传输,有可能会被监听无法验证通信方身份,有可能遭遇伪装无法验证传输信息的完整性,有可能内容遭到篡改针对缺点1:通信使用不加密的明文传输,有可能会被监听通信加密HTTP协议没有机密机制,但是可以结合SSL(secure socket layer 安全套接层)或者TLS(transport layer sec.

2021-06-02 12:38:53 126

原创 计算机网络 | 数据中转、缓存代理和HTTP首部 | [3]

web服务器虚拟主机HTTP1.1允许一台HTTP服务器搭建多个web站点即使物理上只存在一台服务器,但是可以利用虚拟主机实现多个虚拟服务器,从而搭建多个站点同一台服务器上,即使搭建了不同的站点,但是在客户端请求访问某个站点的时候,DNS域名解析服务会将域名解析成唯一的ID地址可能多个域名都对应同一台服务器,而同一台服务器的ID地址又是唯一的因此在发送HTTP请求的时候,必须在Host首部内完整的指定主机名或域名的URI通信数据转发在HTTP通信的时候,常常需要数据的中转,常见的用于中转的程

2021-06-01 09:07:18 225

原创 计算机网络 | HTTP请求方法和响应状态码 | [2]

摘要本章介绍cookie;客户端请求的方法;服务器端响应的状态码;未完待续额~HTTP协议简介当客户端向服务端发送请求时,会发送请求报文请求报文包括:请求方法,请求URI,协议版本,可选的请求首部字段和内容实体构成的收到请求的服务器端会将请求内容的处理结果以响应的形式返回给客户端,称作响应报文响应报文基本上由协议版本,状态码,用来解释状态码的简要短语和可选的响应首部字段和内容实体组成cookieHTTP是无状态的协议,就是该协议不会对客户端和服务端之间的通信状态进行保存每当有新的.

2021-05-31 08:34:31 126 1

原创 计算机网络 | Web和网络基础 | [1]

摘要本章介绍了TCP/IP的四层结构;DNS、TCP、IP协议;TCP三次握手;URI和URL;未完待续额~了解Web和网络基础客户端(client)通过发送请求从服务器处获取信息(资源)在客户端和服务器端的一系列运作流程都是通过HTTP协议完成的HTTP - HyperText Transfer Protocol 超文本传输协议所谓的协议就是约定的规则计算机和网络设备之间进行通信,双方必须约定相同的方法;例如何如检测到通信目标;哪一方先发起通信;如何结束通信等等;这种共同的规则.

2021-05-30 14:10:45 82 3

原创 随感 | 毕设风雨 | 前端之路 | 暗夜与旅人 | 早槐与龙鲤

当日何人送我行,别时江上雨如倾。飘飖尽洗青天色,寥落初生白月明。树色渐深春有影,人潮谁记我无名。独怜怨语难销尽,此夜湖山未放晴。此时已经是2021年五月二十日的深夜,过往风雨皆尽,老实说,直到我写下这篇小感才想起过去发生的事……算了不提伤心往事,说说最近。毕设风雨昨天毕设论文查重,虽说改了一周,每天都写到凌晨,其中波折不足为外人道,但是最后好在是有惊无险的通过了,这是一桩大心事,我从来也没有喜欢过本科学的专业,所以考研失败之后一直在学习编程,也即从21年的1月开始,20年实在经历了太多,导.

2021-05-20 03:19:57 351

原创 三点运算符详解

三点运算符含义是将数组转化为用逗号隔开的参数序列。let arr1 = [3, 4, 5]let arr2 = [1, 2, ...arr1, 6]console.log(arr2)替代数组的apply方法由于出现了三点运算符,所以不需要使用apply方法将数组转换为函数的参数function fun(x,y,z){}let args = [0,1,2];fun(...args);应用合并数组三点运算符提供了数组合并的新方法let arr1 = [1,2,3]let a

2021-05-20 02:33:58 754

原创 两个栈模拟队列的最大容量问题

如何使用两个栈模拟队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty);实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false分析栈(Stack)特点:先进后出队列(Queue)特点:现进先出所以一个栈作为入队栈,一个栈作

2021-05-12 20:29:03 1157 1

原创 树详解(上)|LeetCode|javascript|递归法|一招鲜吃遍天

准备知识相关术语树中每个元素都叫做节点,位于树顶部的节点叫做根节点,没有父节点,节点分祖先节点、后代节点深度:节点祖先节点的个数树的高度:最大的节点的深度二叉搜索树:二叉树的一种,但是左侧子节点值比父节点的值小,右侧子节点的值比父节点的值大LeetCode上最常用二叉搜索树注:下列题目使用递归,迭代法待续(2020.05.09)N叉树的后序遍历/** * // Definition for a Node. * function Node(val,children) { * t

2021-05-09 03:43:19 214

原创 python安装pandas可能遇到的问题

配置环境问题与解决汇总python1、必须下载安装包,自行手动安装,若选择不需要安装版,命令行则会提示pip不是可执行的命令或程序2、安装第三方库的时候,命令行使用pip install pandas,直接下载网速非常慢,可以使用国内的镜像进行下载安装。例如安装pandas:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas第三方库安装问题1、例如pandas版本一定一定要和python版本相符,我一开始安装的pytho

2021-05-09 02:51:30 1769

原创 LeetCode[每日一题] 面试0102.判定互为字符串

4.26 面试0102 判定互为字符串给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。题目分析解法一:取巧一行代码;先转换为数组,排序后重新转为字符串比较return Array.from(s1).sort().join('') === Array.from(s2).sort().join('')解法二:hash表在两个字符串size相等的情况下:hash表储存键值对,key-value表示字符-对应出现的次数;利用一个ma

2021-04-26 21:35:04 81

原创 LeetCode[每日一题]897.递增顺序搜索树

4.25 897.递增顺序搜索树用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )题目分析先用中序遍历获得二叉搜索树的每个节点值;中序遍历的结果是从小到大的;然后创建新的起点节点,一个接一个将中序遍历的结果串到递增顺序搜索树.解释一个接一个curNode = curNode.right;串 for (le

2021-04-25 18:42:34 69

原创 LeetCode[每日一题] 面试0101重复字符串 / 关于set

4.24面试0101重复字符串实现一个算法,确定一个字符串 s 的所有字符是否全都不同。题目分析使用ES6set判断重复var isUnique = function (astr) { var arr = Array.from(astr) var ser = new Set(...[arr]) if (ser.size < arr.length) {// Set的size小于arr.length 说明去重了 return false }

2021-04-24 03:46:26 80

原创 箭头函数

箭头函数 var f = a => b; var f = function(a){ return b }两者等价1.作用:定义匿名函数简化回调函数2.基本语法:没有参数:() => console.log(“aa”)一个参数: x => i + 2大于一个参数:(a, b) => a + b函数体不用大括号,默认返回结果函数体有多个语句,需要用{}包围,若有需要返回的内容,需要手动返回3

2021-04-23 14:39:49 116

原创 LeetCode[每日一题] 35.搜索插入位置 / 关于二分查找的思考

4.22 35.搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。分析在一个排序数组中查找一个数值的索引,使用二分查找是最直观的思路;难点在于如何在目标数不存在的情况下返回应该插入的位置.1、暴力查找,只需要找到第一个大于等于target的数字位置,返回其索引,时间复杂度O(n)2、二分查找:①target存在,返回索引②target不存在,返回leftvar searchInsert = functi

2021-04-22 23:07:38 67 1

空空如也

空空如也

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

TA关注的人

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