自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(170)
  • 资源 (1)
  • 收藏
  • 关注

原创 「 博客迁移声明 」迫于想折腾个人博客

基于 Hexo 和 github pages 搭建的个人博客:https://yukee-798.github.io目前是托管到 github 上的,以后应该会用云服务器,然后换上去年就买来一直没用的域名!初次访问可能有点延迟?欢迎大家观光 or 交换友链。...

2021-02-09 14:35:03 248 2

原创 SASS 用法基础

变量$primary-color: #1269b5;$primary-border: 1px solid $primary-color; div.box { background: $primary-color;}h1.page-header { border: $primary-border;}选择器嵌套不用 sass 语法.nav { height: 100px;}.nav ul { margin: 0;}.nav ul li { float: left; l

2021-01-30 15:29:44 225

原创 配置 iTerm2 记录

插件安装git clone 或者其他方式下载好相应的插件,移动到 ~/.oh-my-zsh/plugins 文件夹下,在 .zshrc 文件中配置好,方式如下plugins=(git)source $ZSH/oh-my-zsh.shplugins=(inrc)source $ZSH/plugins/incr/incr-0.2.zshplugins=(zsh-autosuggestions)source $ZSH/plugins/zsh-autosuggestions/zsh-autosug

2021-01-30 00:33:56 284

原创 git 报错收集

Please clean your repository working tree before checkout报错场景:你 staged changes 了,但是没有 commit ,此时是 不准pull 远程库checkout 切换分支解决方案:如果你在这个分支上的工作已经做完了,那就 git commit 创建提交,这时会回到一个干净的工作区,你就可以 git checkout 切换分支了。但如果任务没做完,绝对不能创建提交!用 git stash 临时贮存起来,恢复到干净的

2021-01-29 14:57:51 3672

原创 React 记坑 ----- 关于 react-redux 中共享状态更新时自动重新 render 页面的问题

自动重新 render 的触发条件组件中的 render 方法内 return 部分使用了共享状态数据通过 reducer 改变了共享状态数据的值遇到的问题import { ADD_PERSON, DELETE_PERSON} from '../constant'export default function personReducer(preState = {personArr: []}, action) { const {type, data} = action let n

2021-01-25 21:42:28 669

原创 C++ 数据结构第二章 ----- 线性表

文章目录线性表线性表的顺序存储一、基本概念二、基本操作线性表的链式存储一、基本概念二、基本操作三、双链表(1) 双链表的插入操作(2) 双链表的删除操作四、循环链表五、循环双链表顺序表与链表的比较线性表线性表的顺序存储一、基本概念定义:线性表的顺序存储指的是 用一组地址连续的存储单元 依次存储线性表中的数据元素。注意:在顺序存储中,逻辑上相邻的数据元素,物理上也相邻。顺序表是 随机存取 的存储结构:顺序表中数据元素的存储地址是其序号的线性函数,只要确定了存储顺序表的起始地址,计算任意一

2021-01-07 15:17:40 216

原创 MySQL 事务控制语句(TCL)

什么是事务?一个或者一组 sql 语句组成一个执行单元,这个执行单元要么全部执行,要么全部都不执行,在这个单元中每个 sql 语句都是相互依赖的。整个单元作为一个不可分割的整体,如果单元中的某条 sql 语句一旦执行失败或者产生错误,整个单元将会回滚。所有受影响的数据将返回到事务开始前的状态,如果单元中的所有 sql 语句均执行成功,则事务被顺利执行。事务的属性 (ACID)一、原子性 (Atomicity)原子性指的是事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。二、一致

2021-01-05 23:34:13 155

原创 MySQL 常用函数

一、基本概念调用方式:select 函数名(实参列表) from 表重点学习内容:函数名称、函数实现的功能二、分类单行函数:如 ifnull、length、concat,传入一个值返回一个值,详细点说就是你在查询过程中在 select 后面调用了单行函数,在里面传入了某个字段,那么查询结果的显示就会是该字段在经过了单行函数处理后的结果。分组函数:count、max、min、avg、sum,传入一组值返回一组值。这里我们重点学习单行函数,下面介绍的都是单行函数。三、字符函数函数

2021-01-04 15:23:25 96

原创 LeetCode for SQL 176. 第二高的薪水 (ifnull & limit & order by)

最开始的思路:根据薪水由大到小排序用 limit 限制显示记录条数为第二条记录即为第二高薪水出现的问题:如果表的记录只有一条,那么第二高薪水应该输出 null,但是下面代码无法实现这个效果select distinct e.Salaryfrom Employee eorder by e.Salary desclimit 1, 1解决方案:使用 ifnull() 函数,如果查询结果无记录,那么赋值为 nullselect ifnull((select distinct e.S

2020-12-18 18:27:37 89 1

原创 MySQL学习记录 (五) ----- 存储函数、存储过程和触发器

变量变量分为两类 ,分别是 系统变量 和 自定义变量 。系统变量:由系统提供 ,不是用户定义 ,属于服务器层面 ,根据系统变量的作用域不同又可以将其分为以下两类。全局变量会话变量使用语法:查看全局系统变量:SHOW GLOBAL VARIABLES查看会话系统变量:SHOW SESSION VARIABLES查看会话系统变量:SHOW VARIABLES;查看满足条件的部分系统变量:SHOW GLOBAL | SESSION VARIABLES LIKE '%char%'

2020-12-17 12:38:37 299

原创 MySQL学习记录 (三) ----- SQL数据定义语句(DDL)

库的管理一、库的创建create database [if exists] 库名;二、库的修改修改库名:rename database 旧库名 to 新库名;修改库的字符集:alter database 库名 character set 字符集(如 gbk utf-8);删库:drop [if exists] 库名;表的管理一、表的创建-- 必须的结构:create table 表名 ( 字段名1 数据类型, 字段名2 数据类型, ...);-- 完整的结构create

2020-12-17 11:13:10 114

原创 MySQL学习记录 (四) ----- SQL数据管理语句(DML)

插入语句insert into 表名(字段名1, ...)values(值1, ...);插入的值的类型要与字段的类型一致,并且数量也要相同不可以为 null 的字段必须插入值,可以为 null 的字段可以省略对应字段insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno)values(7370, 'Mike', 'BOSS', NULL, 1981-02-13, 8200, NULL, 30); in

2020-12-16 18:23:25 116

原创 JavaScript 中的 this 与闭包详解

JavaScript 中的 this一、什么是 this ?在 JavaScript 中 this 关键字一般指的是 函数调用时 所在的 环境上下文 ,存储了 环境上下文对象的内存地址 ,根据函数的调用的方式不同 ,其 this 会指向不同的对象 ,我们可以通过 this 关键字在函数内部中操作其指向的对象 ,看看下面的例子。// 定义 person 对象var person = { name: 'momo', age: 18, gender: '男', say: function()

2020-12-12 15:12:13 397

原创 LeetCode For SQL 184. 部门工资最高的员工 (分组 & from嵌套)

184. 部门工资最高的员工# Write your MySQL query statement below-- 先找出每个部门最高薪资,显示出部门id、部门名称和薪资-- 然后再通过这个新表,根据部门id和薪资连接Employee表/*(select d.Name max(e.Salary) as Salaryfrom Employee e, Department dwhere e.DepartmentId = d.Idgroup by d.

2020-12-05 00:06:14 133

原创 CSS知识点补充收集

光标变为手型cursor: pointer;消除按钮、表单获取焦点时出现的边框outline: none;让文字变为不可选取user-select: none;

2020-11-24 08:08:32 92

原创 JS助记 ----- 正则表达式

正则表达式的创建一个完整的正则表达式包含 pattern(模式) 和 modifiers(修饰符),形如:/模式/修饰符var reg = /abc/g; // 表示在全局去匹配 'abc' 这个子串修饰符i 表示忽略大小写的匹配模式g 表示全局匹配模式基本用法// 全局匹配 'a' 或 'b' 或 'c' 这几个字符var reg = /a|b|c/g;var reg = /[abc]/;reg.test('defa'); // 返回 true,因为 'defa' 符合该正

2020-11-22 16:15:03 136

原创 JS小项目 ----- 可视化冒泡排序

效果图可视化冒泡排序HTML代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style>

2020-11-21 13:33:46 279

原创 JS记坑 ----- children返回的类数组

场景 通过父结点.children获取到了父结点的所有子结点的类数组,我想在这个类数组中swap元素,然后再通过这个交换了部分元素的类数组重新渲染父结点下的所有子节点顺序的HTML结构。在实现了代码并且调试了多遍之后,发现这个类数组是无法修改的!解决办法 深拷贝这个类数组的元素,然后对这个拷贝数组进行操作。...

2020-11-18 23:09:53 804 2

原创 JS助记 ----- 盒子模型与获取元素样式

一、盒子模型简单介绍content-box默认的盒子模型,width 和 height 设置的是 content 的大小,有border和padding的情况下再额外增加盒子的宽高,整个盒子的大小由 border、padding、content 共同决定,border 和 padding 不会影响 content 的大小。border-box怪异盒子模型,width 和 height 设置的就是整个盒子的大小(除margin),如果给元素设置 border 和 padding 就会挤压 conten

2020-11-18 19:52:10 222 1

原创 JS小技巧 ----- 遍历一个对象中所有属性

使用 Object.keys() 与 forEach()var person = { 'name': "莫莫", 'age': 20, gender: 0};// 将该对象所有属性名(string)依次保存在一个数组中var arr = Object.keys(person);// 遍历属性名,通过属性名来获取属性值arr.forEach((element) => { console.log(`${ element }:${ person[element]

2020-11-15 14:29:37 2356

原创 JS小技巧 ----- 关于 ... 运算符的使用场景

使用场景 关于 ... 运算符通常可以实现两种作用,分别是 聚合作用 和 扩展作用 ,一般会结合 ES6 的解构赋值语法使用聚合作用 位于等号左边,通过 ...变量名 可以将等号右边的 类数组 / 数组 的剩余的内容聚合给左边指定的变量// 右边数组的前两个元素赋值给了 a 和 b 变量,后面剩余的元素聚合为一个子数组赋值给 c 变量var [ a, b, ...c ] = [ 1, 2, 3, 4, 5, 6, 7 ]; // 将左边对象的 name 属性值赋值给右边的 name 变量,

2020-11-13 20:21:48 278

原创 JS小技巧 ----- 将类数组 / 字符串转为数组的几种方式

使用ES6的数组解构和扩展运算符// 假设 m 是一个类数组对象let [...arr1] = m; // 将类数组 m 转换为了 arr1 数组let arr2 = [...m] // 将类数组 m 转换为了 arr2 数组使用数组的slice()方法// 假设 m 是一个类数组对象let arr = Array.prototype.slice.call(m); // 将类数组 m 转换为了 arr 数组...

2020-11-13 19:56:05 338

原创 JS小技巧 ----- 在onmousedown事件下避免文本选取

场景在浏览器中,当我们长按鼠标左键后会开始选取文段,松开鼠标后再对着文本长按左键,就可以移动文本的副本到浏览器搜索栏中了。现在我们要通过JS实现长按元素来拖拽一个元素,但是当无意间选中文本只后,再来拖拽这个元素,会引起文本和元素一起移动,还会发生一些不合逻辑的拖拽异常。解决方式对拖拽元素的事件 onmousedown 的响应函数最后一行加上return false; 即可解决这个问题。...

2020-11-10 18:01:12 475

原创 JS记坑 ----- 在父节点中添加删除子节点

场景:通过javascript为ul标签内动态增删li标签,我通过liArr = ul.children;获取了ul的存有所有子元素的类数组,但是在appendChild()、insert()和removeChild()的过程中,发现这个liArr数组在动态变化,但是每次增删子元素的时候代码中并没有更新liArr的数据。自己的理解:在增删修改子元素的时候,其对应的类数组(ul.children)会随之动态变化,不用自己来更新数组的数据。代码:<script> var ul;

2020-11-03 17:44:58 865

原创 mysql

create table 表名( 字段名1 数据类型 约束 字段名2 数据类型 约束 字段名3 数据类型 约束 .....) MySQL中字段常用的数据类型int 整数型bigint 长整型float 浮点型char 定长字符串varchar 可变长字符串date 日期类型BLOB 二进制大对象(存储图片、视频等流媒体信息)CLOB 字符大对象(存储较大文本,如:存储4G的字符串)关于char和varchar特点和选取char:定长字符串,占用空间大小永远为指定的c

2020-11-02 18:27:32 96

原创 JavaScript内建对象 (一) ----- Array

文章目录1 数组的定义方式2 数组的基本用法2.1 添加元素2.2 获取与修改数组长度2.3 向数组尾部添加元素3 常用方法3.1 概览3.2 详解3.2.1 push()3.2.2 pop()3.2.3 unshift()3.2.4 shift()3.2.5 slice()3.2.6 splice()3.2.7 concat()3.2.8 join()3.2.9 reverse()3.2.10 sort()4 forEach()1 数组的定义方式var arr1 = new Array();var

2020-10-29 21:07:15 99

原创 小技巧 ----- Java算法题标准模版

模版import java.util.*;import java.io.*;import java.math.*;class Main { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String[] sp; BufferedWriter log = new BufferedWriter(new OutputStreamWriter(System.out)); /* 定义全局变量

2020-10-29 16:11:15 162

原创 小技巧 ----- 计数数组中小于 target 的元素个数

二分flag + 前缀和

2020-10-27 18:18:19 197

原创 小技巧 ----- 枚举整数的每一位数字

使用字符串int num = 12345;char[] c = String.valueOf(num).toCharArray();for (int i = 0; i < c.length; i++) { // c[i] - '0' 就是整数 num 从左到右的数字}先%10再/10int num = 12345;int x = num;while (x > 0) { int i = x % 10; x /= 10; // 这里的数字 i 就是整数 num 从右到左的数

2020-10-25 16:12:47 363

原创 AcWing 1245. 特别数的和 (数位枚举)

import java.util.*;class Main { Scanner s = new Scanner(System.in); int n; void run() { n = s.nextInt(); int sum = 0; for (int i = 1; i <= n; i++) { int x = i; while (x > 0) {

2020-10-25 16:06:05 113

原创 AcWing 1236. 递增三元组 (flag + 前缀和 | 二分 | 滑动窗口)

1236. 递增三元组解题思路最开始想到3重循环枚举三个数组,然后最内层用条件语句判断一下即可,但是数据范围为10510^5105,三重循环肯定会超时那么这道题很可能需要的算法复杂度为O(n)O(n)O(n)或O(nlogn)O(nlogn)O(nlogn),所以只能枚举一个数组,那么枚举哪一个呢?根据题目来看,要求Ai<Bj<CkA_i<B_j<C_kAi​<Bj​<Ck​,那么就来枚举B数组此时我们只需要找到A数组中所有小于BjB_jBj​的数和C数组中所

2020-10-25 15:35:10 224

原创 常用代码模板1 ----- 基础算法

一维前缀和求一维前缀和数组:从下标1开始记录for(i = 1 ... n) s[i] = s[i - 1] + a[i]从下标0开始记录s[0] = a[0]for(i = 1 ... n) s[i] = s[i - 1] + a[i]根据前缀和数组求a数组[l, r]区间和:sum = s[r] - s[l - 1]二维前缀和求二维前缀和数组:行列均从下标1开始记录for(i = 1 ... n) for(j = 1 ... m) S[i][j] = S[i -

2020-10-24 19:38:10 146

原创 记坑 ----- Arrays.sort()

开数组的时候一般是数据范围+10的长度,当要用到排序的时候,别直接Arrays.sort(arr),因为成员数据会直接赋默认值,数组里面默认的0就排序到前面去了关于Arrays.sort(int[] arr, int startIndex, int endIndex)区间排序的时候,需要注意的是[startIndex, endIndex),和substring一样...

2020-10-23 21:44:02 387

原创 css小技巧 ----- 使用border制作一个小三角形图标

css样式div { width: 0; height: 0; overflow: hidden; border-width: 7px; border-color: transparent transparent #10456b transparent; border-style: solid;}图标解释关于一个元素border的solid样式在一条边上实际上是一个梯型(当border的宽度足够大,并且给其余三条边设置为透明就能看出来)这里把div

2020-10-22 20:45:44 592

原创 AcWing 1210.连号区间 (枚举)

1210. 连号区间优化思路:  对于一个每次都增加1个长度的子区间,求这个区间内的最大值和最小值,只需要比较每次多的那个元素的值即可。import java.util.*;import java.io.*;import java.math.*;class Main { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String[] sp; int[] arr

2020-10-20 00:15:59 116

原创 移动Web开发 ----- Flex布局详解

文章目录1 Flex布局简介2 Flex布局基本概念3 容器属性3.1 display3.2 flex-direction3.3 flex-warp3.4 justify-content3.5 align-items3.6 align-content4 项目属性4.1 order4.2 flex-grow4.3 flex-shrink4.4 flex-basis4.5 align-self1 Flex布局简介Flex布局的出现是为了解决复杂的Web布局,这种布局很灵活,容器内的子元素可以任意方向进行

2020-10-17 16:55:51 127

原创 AcWing 1015. 摘花生 (DP)

1015. 摘花生思路状态表示:dp[i][j]表示从(1, 1)走到(i, j)的所有路线中权值最大的那条路线状态计算(集合划分):从(1, 1)走到(i, j)的所有路线集合划分为下面两类最后一步走到(i, j)时,是从上往下走的最后一步走到(i, j)时,是从左往右走的状态转移方程:dp[i][j] = max(dp[i - 1][j] + w[i][j], dp[i][j - 1] + w[i][j])ans = dp[r][c]import java.util.*;im

2020-10-15 17:23:11 120

原创 模版 ----- DP

动态规划解题思路以01背包问题为例一、状态表示dp[ i ][ j ]根据枚举思想抽象出一种集合步骤:明确问题目的01背包问题的目的是从一堆有权重和体积的物品中存放到一定体积的背包中,要求找到能让放在背包中的物品总价值和最大那种取法。根据枚举思想抽象出集合问题的目的是找到最佳取法,那么根据枚举思想,我们需要枚举出所有的取法,那么抽象出来的集合就是:从前 i(0 ~ n) 个物品中考虑并且选出的物品总体积不能超过 j(0 ~ m),每种不同的 i、j 取值对应着不同的集合。

2020-10-14 13:44:47 157 1

原创 移动Web开发基础概念

1 像素1.1 分辨率以物理像素作为基准,不同设备的物理像素单位大小不同1.2 物理像素 (设备像素)物理像素只与设备有关1.3 CSS像素 (逻辑像素)实际开发中使用的像素1.4 设备像素比 (dpr)dpr = 物理像素 / CSS像素dpr = 2,表示1个 CSS 像素用 2x2 个设备像素来绘制1.5 标清屏和高清屏标清屏下(Standard),一个 CSS 像素由一个物理像素描述,dpr = 1高清屏下(Retina),一个 CSS 像素由 2x2 的

2020-10-13 22:04:25 162

原创 AcWing 99. 激光炸弹 (二维前缀和)

99. 激光炸弹题意给定一个5000x5000的地图随机在该地图上放置物品,物品具有价值,且不同物品可以放置在同一位置有一个炸弹的爆炸范围为RxR的正方形问该炸弹在地图上爆炸一次,最多能摧毁的物品价值为多少思路枚举该正方形在地图中所有可能出现的位置利用二维前缀和计算在正方形范围内物品的价值和找出最大的那一个价值和class Main { BufferedReader reader = new BufferedReader(new InputStreamReader(Sys

2020-10-13 15:34:30 159

原生 JavaScript 实现像素贪吃蛇

适合 HTML CSS JavaScript 的入门练习

2020-12-31

空空如也

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

TA关注的人

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