博客食用指南
重拾博客,本着分享的精神,给大家分享一些自己所知道的那些浅薄的知识🎉。希望能给大家带来一些帮助,以及一些乐趣。整理完博客的基本功能了(doga,未来会不断的完善和加入新的好玩的东西~
博客加载速度可能因为位置问题有些慢,未来会尽量解决 ~ 麻烦啦
文章相关打开和关闭目录右下角齿轮设置中打开侧边栏即可查看目录
阅读模式右下角齿轮设置中打开阅读模式
暗黑模式右下角齿轮设置中切换暗黑模式
评论相关头像设置前往 https://cn.gravatar.com/,通过邮箱注册并设定头像,评论时邮箱填写注册的邮箱即可
图片上传评论支持图片上传,上传图片后稍等片刻就会显示出图片的链接。
KaTex 公式评论支持 KaTex 公式,输入 $$ 即可输入公式
私信右下角可以打开聊天窗口,欢迎私信呀
私信可以发送文件
博客更新订阅右下角聊天窗口填入邮箱后发送:订阅。即可
未来会添加更方便的方法,哈哈哈
内容计划:
LeetCode 热题 HOT 100
功能计划:
博客迁移,记录为 v2.0 开始吧~
...
LeetCode-279 完全平方数
LeetCode-279 完全平方数题目描述给你一个整数 $n$ ,返回 和为 $n$ 的完全平方数的最少数量 。
完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,$1、4、9$ 和 $16$ 都是完全平方数,而 $3$ 和 $11$ 不是。
数据样例示例 1:
123输入:n = 12输出:3 解释:12 = 4 + 4 + 4
示例 2:
123输入:n = 13输出:2解释:13 = 4 + 9
数据范围:
$1 \leq n \leq 10 ^ 4$
动态规划完全背包题目的含义可以转换为完全背包,物品的容量和代价分别是:
给定 $1 \sim N$ 范围内的所有平方数,每个物品(平方数)的容量是这个平方数的值,代价是 $1$
问题转换为:求由这些平方数可以选择任意多个,组成背包容量为 $N$ 的代价的最小值
那么这个问题就是完全背包问题,我们知道完全背包问题的状态转移方程为:
$w[i]$ 为第 $i$ 个平方数的值
$1$ 表示当前物品(平方数)的代价为 $1$
$$f[j] = min(f[j], f[j ...
hexo博客迁移,开始更新
hexo 博客迁移记录前言由于之前的服务器到期了,所以需要将博客相关数据进行迁移,记录一下。
docker 迁移docker 迁移的方法了解有两种:
迁移容器:
导出容器:docker export {container_id} > container.tar
导入容器:type/cat container.tar | docker import - {container_name}
迁移镜像:
导出并压缩镜像:docker save {container_id} | gzip container.tar.gz
导入镜像:docker load -i container.tar.gz
但是都存在一些问题:
迁移容器:
无法启动解决方法:docker run 启动需要尾部加上 COMMAND 命令,这个命令可以通过 docker ps -a --no-trunc 查看
需要 docker run 指定端口:不会迁移 Port 等这些信息
报错:hexo server 命令不存在,可能是没有 init,但是如果 ...
LeetCode-8 字符串转换整数(atoi)
LeetCode-8 字符串转换整数(atoi)题目描述请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。
函数 myAtoi(string s) 的算法如下:
读入字符串并丢弃无用的前导空格
检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。
读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。
将前面步骤读入的这些数字转换为整数(即,"123" -> 123, "0032" -> 32)。如果没有读入数字,则整数为 $0$ 。必要时更改符号(从步骤 $2$ 开始)。
如果整数数超过 $32$ 位有符号整数范围 $[−2 ^ {31}, 2 ^ {31} − 1]$, 需要截断这个整数,使其保持在这个范围内。具体来说,小于 $−2 ^ {31}$ 的整数应该被固定为 $−2 ^ {31}$ ,大于 $2 ^ {31} ...
LeetCode-1386 安排电影院座位
LeetCode-1386 安排电影院座位题目描述
如上图所示,电影院的观影厅中有 $n$ 行座位,行编号从 $1$到 $n$ ,且每一行内总共有 $10$ 个座位,列编号从 $1$ 到 $10$ 。
给你数组 reservedSeats ,包含所有已经被预约了的座位。比如说,researvedSeats[i]=[3,8] ,它表示第 $3$ 行第 $8$ 个座位被预约了。
请你返回 最多能安排多少个 $4$ 人家庭 。$4$ 人家庭要占据 同一行内连续 的 $4$ 个座位。隔着过道的座位(比方说 $[3,3]$ 和 $[3,4]$)不是连续的座位,但是如果你可以将 $4$ 人家庭拆成过道两边各坐 $2$ 人,这样子是允许的。
示例 1:
123输入:n = 3, reservedSeats = [[1,2],[1,3],[1,8],[2,6],[3,1],[3,10]]输出:4解释:上图所示是最优的安排方案,总共可以安排 4 个家庭。蓝色的叉表示被预约的座位,橙色的连续座位表示一个 4 人家庭。
示例 2:
12输入:n = 2, reservedSeats = [[2, ...
LeetCode-155 最小栈
LeetCode-155 最小栈题目描述设计一个支持 push, pop, top 操作,并能在常数时间内检索到最小元素的栈。
实现 MinStack 类:
MinStack() 初始化堆栈对象。
void push(int val) 将元素 val 推入堆栈。
void pop() 删除堆栈顶部的元素。
int top() 获取堆栈顶部的元素。
int getMin() 获取堆栈中的最小元素。
示例 1
12345678910111213141516输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null,-3,null,0,-2]解释:MinStack minStack = new MinStack();minStack.push(-2) ...
LeetCode-1302 层数最深叶子节点的和
LeetCode-1302 层数最深叶子节点的和题目描述给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和
示例 1:
12输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]输出:15
示例 2:
12输入:root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]输出:19
提示:
树中节点数目在范围 $[1, 10 ^ 4]$ 之间。
$1 \leq Node.val \leq 100$
深度优先搜索 DFS - $O(N)$DFS只需要遍历一遍树,找到所有叶子节点,此时判断:
当前叶子节点深度 小于 当前最深深度,则跳过
当前叶子节点深度 等于 当前最深深度,则 最深深度节点权值和加上当前节点权值
当前叶子节点深度 大于 当前最深深度,则 更新最深深度,以及更新最深深度节点权值和为当前节点的权值
由于 非叶子节点深度一定低于叶子节点,因此对于所有节点都可以进行上述判断,代码可以写的更短一些
题目中第一个实例的更新过程如下图所示:
当前节点深 ...
LeetCode-142 环形链表 II
LeetCode-142 环形链表 II题目描述给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。
不允许修改 链表。
数据样例示例 1:
123输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链表节点解释:链表中有一个环,其尾部连接到第二个节点。
示例 2:
123输入:head = [1,2], pos = 0输出:返回索引为 0 的链表节点解释:链表中有一个环,其尾部连接到第一个节点。
示例 3:
123输入:head = [1], pos = -1输出:返回 null解释:链表中没有环。
提示:
链表中节点的数目范围在范围 $[0, 10 ^ 4]$ 内
$-10 ^ 5 \ ...
LeetCode-15 三数之和
LeetCode-15 三数之和题目描述给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0?请你找出所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。
数据样例示例 1:
12输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]
示例 2:
12输入:nums = []输出:[]
示例 3:
12输入:nums = [0]输出:[]
提示:
$0 \leq nums.length \leq 3000$
$-10 ^ 5 \leq nums[i] \leq 10 ^ 5$
双指针 - $O(N ^ 2)$两数之和首先,我们可以回顾一下如何利用双指针算法求解两数之和:
两数之和:序列寻找 $a + b = 0$
将序列进行排序为递增有序序列
指针 $i$ 从序列 左侧 开始向右侧移动
指针 $j$ 从序列 右侧 开始向左侧移动
双指针算法:
当前如果 $nums[i] + nums[j] \geq 0$,则指针 $j$ 向左侧 ...
LeetCode-79 单词搜索
LeetCode-79 单词搜索题目描述给定一个 $m * n$ 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true 否则,返回 false
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
数据样例示例 1:
12输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"输出:true
示例 2:
12输入:board = [["A","B","C","E"],["S" ...