自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetBook——栈和队列——克隆图

克隆图给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node {public int val;public List neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中使用邻接列表表示。邻接列表 是用于表示有限图的无序列表的集合。每个列表都

2021-07-26 17:21:42 171

原创 mysql执行SQL脚本

方法一【Mysql的bin目录】\mysql –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】示例:如果mysql配了全局变量,就不需要到Mysql的bin目录下执行,可以在任何地方使用用户名、密码、指定数据库等参数值与参数名不需要隔空格不建议使用这种方法密码暴露在命令行,不安全只是用windows的cmd方法二进入控制台使用命令 mysql –u用户名 –p 进入登录界面mysql –u用户名 –p然后输入密码进入mysql控制台选定数据库

2021-07-17 15:45:20 14182

原创 LeetBook——栈和队列——逆波兰表达式求值

逆波兰表达式求值根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入:tokens = [“2”,“1”,"+",“3”,"*"]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例 2:输入:tokens = [“4”,“13”,“5”,"/","+"

2021-07-06 20:43:01 120

原创 LeetBook——栈和队列——每日温度

每日温度请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。 public int[] da

2021-07-05 09:59:11 82

原创 LeetBook——栈和队列——有效的括号

有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}”输出:true提示:1 <= s.le

2021-07-04 16:57:04 64

原创 LeetBook——栈和队列——最小栈

最小栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null

2021-07-04 16:34:01 81

原创 LeetBook——栈和队列——完全平方数

完全平方数给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。示例 1:输入:n = 12输出:3解释:12 = 4 + 4 + 4示例 2:输入:n = 13输出:2解释:13 = 4 +

2021-07-03 10:28:17 101

原创 LeetBook——栈和队列——岛屿数量

岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [[“1”,“1”,“1”,“1”,“0”],[“1”,“1”,“0”,“1”,“0”],[“1”,“1”,“0”,“0”,“0”],[“0”,“0”,“0”,“0”,“0”]]输出:1示例 2:输入:grid = [[“1”,“1”,“

2021-07-02 19:27:05 91

原创 LeetBook——栈和队列——打开转盘锁

打开转盘锁你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。字符串 target 代表可以解锁

2021-07-02 19:19:33 105

原创 LeetBook——栈和队列——设计循环队列

设计循环队列设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。Front: 从队首获取元素。如果队列为空,

2021-06-27 18:37:55 146

原创 扁平化多级双向链表

扁平化多级双向链表照抄官方题解,只是加些注释本质上是将一个二叉树进行先序遍历,遍历时的操作是将当前节点与前驱连接起来,根节点没有前驱,所以给根节点加一个假头节点。操作顺序为,处理根节点处理左子树处理右子树// 递归版 public Node flatten(Node head) { if(head == null ) { return head; //如果传入的是空表,不需要处理,直接返回 }

2021-06-25 19:08:38 76

原创 LeetBook——链表——旋转列表

旋转列表首先明确该题目的链表是无头结点的单链表,因此旋转的操作可以通过先将链表改为循环单链表,然后在恰当的地方断开来完成要求第一步: 判断是否需要处理,不需要的直接原样返回第二步: 如果需要处理,那么遍历链表。 作用一、统计链表结点个数,方便下一步操作,作用二,找到表尾节点,方便成环第三步: 通过对K取余,将K>链表长度的情况转变为K<链表长度的情况,这样就只需要考虑k<链表长度的情况了第四步: 链表长度-k。得到的就是新的头节点应在的位置第五步

2021-06-24 21:00:13 143 2

原创 LeetBook——链表——两数相加

两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,9],

2021-06-24 12:03:18 53

原创 LeetBook——链表——合并两个有序链表

设计链表题目传入的是无头结点的有序单链表,为了方便操作,搞个头节点先用传入的两个引用遍历传入的表,遍历过程中比较,将较小的节点尾插到解答链大概率不会同时处理完,剩下的那条链可以直接接在尾部public ListNode mergeTwoLists(ListNode l1, ListNode l2) { //传入的是无头结点的有序单链表 if( l1 == null ){ return l2; }else if(l2 ==

2021-06-23 22:13:04 113 1

原创 LeetBook——链表——双链表——设计链表

双链表——设计链表设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新

2021-06-21 22:32:06 89

原创 LeetBook——链表——回文链表

回文链表请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?解法找到链表中间节点,快指针法将后半部分链表逆转比较前半部分链表和后半部分链表再次逆置后半部分链表,修复链表,逆置链表直接用的以前写过的题的代码-时间复杂度:逆置两次后半部分的表(n),寻找中间节点需要遍历整个表一次,比对节点 也需要遍历整个表(n

2021-06-20 14:36:44 82

原创 LeetBook——链表——奇偶链表

奇偶链表给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2->4->NULL示例 2:输入: 2->1->3->5->6-&g

2021-06-19 17:41:09 190

原创 LeetBook——链表——移除链表元素

移除链表元素给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]提示:列表中的节点数目在范围 [0, 104] 内1 <= Node.val &lt

2021-06-18 20:27:48 49

原创 LeetBook——链表——反转链表

反转链表给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?迭代解法public ListNode re

2021-06-18 05:51:54 247

原创 LeetBook——链表——双指针技巧——删除链表的倒数第N个节点

删除链表的倒数第N个节点给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Node.val <= 1001 <= n

2021-06-18 04:33:19 251

原创 LeetBook——链表——双指针技巧——相交链表

相交链表给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Intersected at ‘8’解

2021-06-17 13:19:19 103

原创 LeetBook——链表——双指针技巧——环形链表(2)

环形链表(2)给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?示例 1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链表节点解释:链表中有一

2021-06-16 17:23:50 57

原创 LeetBook——链表——双指针技巧——环形链表(1)

给定一个链表,判断链表中是否有环如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。进阶:你能用 O(1)(即,常量)内存解决此问题吗?示例 1:输入:head = [3,2,0,-4], pos

2021-06-16 16:49:36 57

原创 LeetBook——链表——02单链表——设计链表

设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的第

2021-06-16 15:10:39 152

原创 Git记录(log 、relog)与版本回退(reset)

git loggit 记录着所有的提交日志,通过log命令可以读取过去的提交记录,得到commit id即版本的哈希码语法git log 四行详细记录,包括的信息有commit id、提交者、提交时间、备注git log --pretty=oneline输出的每个提交记录只占据一行,每行的显示内容为commit id + 备注(HEAD -> master)指向的地方表示当前版本通过log命令我们可以找到想要的版本的commit idgit relog通过relog命令可以读取

2021-06-01 09:34:44 2567

原创 git状态(status)与比较(diff)

git statusgit status 的作用是查看当前工作区的情况。语法git status该语句的作用是获取当前工作状态,具体为经过更改的文件的状态。分为以下几类更改过,还未添加(对文件做了修改但是没有用add语句添加到暂存区)已添加,待提交(对文件做了修改且用add语句添加到了暂存区,等待commit提交)没有需要提交的,工作目录干净(说明刚刚提交过,还没有新的文件加入暂存区)git differ通过status语句发现有文件被更改过了,但是忘记做了什么更改时,可以用diff

2021-06-01 09:10:22 479

原创 Git的添加(add)与提交(commit)操作

工作区文件夹中除.git文件夹之外的都属于工作区,我们在工作区内进行增删改等操作。暂存区.git文件夹中的一部分空间,暂存区用来暂时存放被更改了的需要提交为新版本的文件。版本库.git 文件夹中除暂存区以外的空间。各个版本在版本库中以commita的时间为线索构成链表,每个版本的哈希值为该版本的版本号,提交时通过-m写入的备注就是该版本的版本说明。add语法git add file1-name.type file2-name.type可以一次添加多个文件git add . 表示添加所有

2021-06-01 08:55:48 9374 1

原创 Git创建本地版本库(仓库)

本地版本库(repository)版本库也叫仓库,仓库中的所有文件都可以被git管理,前提是添加该文件到.git文件夹空文件夹右键单击点击git bash输入$ git init初始化版本库文件夹中多了一个.git文件夹,.git文件夹内是Git的工作区,不可以动该文件夹是隐藏文件夹,看不到的话就点查看设置下非空非空的文件夹也可以作为创建本地仓库步骤同上,但是想将原有的文件交给Git管理的话需要多两个操作,add 和 commit$ git add .$ git co

2021-06-01 08:22:02 293

原创 安装Git

Git官网windows从官网下载安装包点next选择要安装的文件夹,然后不停的点nextLinux通过官网的指引使用命令行安装配置git bash linux风格命令行git cmd windows风格命令行git GUI 图形界面在Git Bash中输入下面两条命令配置用户名字和邮箱地址$ git config --global user.name "Your Name"$ git config --global user.email "email@example.c

2021-06-01 07:48:17 51

原创 Git简介

Git是什么?一个版本控制系统版本控制是什么?记录一个或若干文件内容变化,以便获取特定版本。版本控制有什么用?将某个文件甚至整个项目回溯到过去的某一状态通过比较不同版本的差异,可以找出问题出现的原因记录开发过程中的每一次变更,方便找出是谁的锅版本控制可以当后悔药用如何进行版本控制?通过版本控制系统版本控制系统(version contr system,VCS)分为集中式版本控制系统  (centralized version control system,CVCS)和 分布式版本控

2021-06-01 07:09:07 67

原创 Docker的安装——以Ubuntu 20.04为例

参考自dockers官方操作文档:https://docs.docker.com/engine/install/ubuntu/需要安装其他版本的可以直接去参考官方文档移除旧版本的docker,因为我是新安装的Ubuntu,所以没有找到旧版本sudo apt-get remove docker docker-engine docker.io containerd runc——————————设置存储库———————————更新apt软件包索引并安装软件包,以允许apt通过HTTPS使用存储库$

2021-03-23 11:53:24 1415 1

空空如也

空空如也

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

TA关注的人

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