自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 6.830 / 6.814: Syllabus 2021 - MIT Lab 1 - SimpleDB

文章目录1.参考链接:2.SimpleDB Architecture and Implementation Guide2.2Fields and Tuples2.3Catalog2.4BufferPool2.5HeapFile access method2.6Operators在此实验中,您将为SimpleDB编写一组运算符,以实现表修改(例如,插入和删除记录),选择,连接和聚合。 这些将构建在实验1中写入的基础之上,为您提供一个可以在多个表上执行简单查询的数据库系统。此外,我们忽略了实验中的缓冲池管理

2021-07-10 22:26:07 586

原创 6.830 / 6.814: Syllabus 2021 - MIT Lab 2 - SimpleDB Operators

在此实验中,您将为SimpleDB编写一组运算符,以实现表修改(例如,插入和删除记录),选择,连接和聚合。 这些将构建在实验1中写入的基础之上,为您提供一个可以在多个表上执行简单查询的数据库系统。此外,我们忽略了实验室中的缓冲池管理问题:我们没有处理我们引用更多页面时出现的问题,而不是在数据库的生命周期中符合内存。 在Lab 2中,您将设计一个驱动策略来从缓冲池中刷新陈旧页面。您无需在此实验室中实施事务或锁定。本文档的其余部分给出了一些关于如何开始编码的建议,描述了一组练习,以帮助您通过实验室工作,并

2021-07-09 17:54:08 623

原创 第十二讲-讲为什么我的MySQL会“抖”一下

为什么我的MySQL会“抖”一下?当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页”。抖动的时候应该是在刷脏页:第一种场景是,粉板满了,记不下了。这时候如果再有人来赊账,掌柜就只得放下手里的活儿,将粉板上的记录擦掉一些,留出空位以便继续记账。当然在擦掉之前,他必须先将正确的账目记录到账本中才行。这个场景,对应的就是InnoDB的redo log写满了。这时候系统会停止所有更新操作,把checkpoint往前推

2021-07-07 19:41:13 168 1

原创 第十一讲-怎么给字符串字段加索引

怎么给字符串字段加索引?1.直接创建完整索引,这样可能比较占用空间;2.创建前缀索引,节省空间,但会增加查询扫描次数,并且不能使用覆盖索引;3.倒序存储,再创建前缀索引,用于绕过字符串本身前缀的区分度不够的问题;4.创建hash字段索引,查询性能稳定,有额外的存储和计算消耗,跟第三种方式一样,都不支持范围扫描。在实际应用中,你要根据业务字段的特点选择使用哪种方式。作者提问:如果你在维护一个学校的学生信息数据库,学生登录名的统一格式是”学号@gmail.com", 而学号的规则是:十五位的数字,

2021-07-07 18:58:26 210

原创 第十讲-讲MySQL为什么有时候会选错索引

MySQL为什么有时候会选错索引?扫描行数是怎么判断的?MySQL在真正开始执行语句之前,并不能精确地知道满足这个条件的记录有多少条,而只能根据统计信息来估算记录数。这个统计信息就是索引的“区分度”。显然,一个索引上不同的值越多,这个索引的区分度就越好。而一个索引上不同的值的个数,我们称之为“基数”(cardinality)。也就是说,这个基数越大,索引的区分度越好。mysql采用的采样统计采样统计的时候,InnoDB默认会选择N个数据页,统计这些页面上的不同值,得到一个平均值,然后乘以这个索引

2021-07-07 16:37:42 76

原创 第九讲-讲普通索引和唯一索引,应该怎么选择

普通索引和唯一索引,应该怎么选择?查询过程对于普通索引来说,查找到满足条件的第一个记录(5,500)后,需要查找下一个记录,直到碰到第一个不满足k=5条件的记录。对于唯一索引来说,由于索引定义了唯一性,查找到第一个满足条件的记录后,就会停止继续检索。性能相差不大。更新过程第一种情况是,这个记录要更新的目标页在内存中。这时,InnoDB的处理流程如下:对于唯一索引来说,找到3和5之间的位置,判断到没有冲突,插入这个值,语句执行结束;对于普通索引来说,找到3和5之间的位置,插入这个值,语句执行结

2021-07-07 16:03:04 60

原创 第八讲-讲事务到底是隔离的还是不隔离的

讲事务到底是隔离的还是不隔离的这个要看隔离级别;对于可重复读,查询只承认在事务启动前就已经提交完成的数据;对于读提交,查询只承认在语句启动前就已经提交完成的数据;作者提问:现在,我要把所有“字段c和id值相等的行”的c值清零,但是却发现了一个“诡异”的、改不掉的情况。请你构造出这种情况,并说明其原理。mysql> CREATE TABLE `t` (`id` int(11) NOT NULL,`c` int(11) DEFAULT NULL,PRIMARY KEY (`id`)) E

2021-07-07 14:57:10 97

原创 第七讲-讲行锁功过:怎么减少行锁对性能的影响

怎么减少行锁对性能的影响?1.如果你的事务中需要锁多个行,要把最可能造成锁冲突、最可能影响并发度的锁尽量往后放。因为所有的操作需要的行锁都是在事务提交的时候才释放的,如果你把最可能造成锁冲突、最可能影响并发度的锁尽量往后放,那么这一行的锁时间就最少。这就最大程度地减少了事务之间的锁等待,提升了并发度。2.解决死锁问题。对于死锁有两种策略:一种策略是,直接进入等待,直到超时。这个超时时间可以通过参数innodb_lock_wait_timeout来设置。另一种策略是,发起死锁检测,发现死锁后,主动回

2021-07-07 11:21:15 168

原创 第六讲-讲全局锁和表锁:给表加个字段怎么有这么多阻碍

如何安全地给小表加字段?1.首先我们要解决长事务,事务不提交,就会一直占着MDL锁。在MySQL的information_schema 库的 innodb_trx 表中,你可以查到当前执行中的事务。如果你要做DDL变更的表刚好有长事务在执行,要考虑先暂停DDL,或者kill掉这个长事务。2.但考虑一下这个场景。如果你要变更的表是一个热点表,虽然数据量不大,但是上面的请求很频繁,而你不得不加个字段,你该怎么做呢?3.这时候kill可能未必管用,因为新的请求马上就来了。比较理想的机制是,在alter ta

2021-07-06 14:39:42 65

原创 第三讲-事务隔离:为什么你改了我还看不见-问题分析

本讲问题:为什么你改了我还看不见这个与不同的隔离级别有关。读未提交:你的修改即使未提交也可以看到读已提交:你的修改未提交我是看不到的,你如果提交的话,即使处于不同事务,我也可以看到。可重复读、可串行化:你的事务提交了,我还处在另外一个事务时,是看不到你的修改的,这是事务的隔离性。作者提问:你现在知道了系统里面应该避免长事务,如果你是业务开发负责人同时也是数据库负责人,你会有什么方案来避免出现或者处理这种情况呢?这个问题,我们可以从应用开发端和数据库端来看。首先,从应用开发端来看:确认是否使

2021-07-04 22:37:32 87

原创 第四讲-讲深入浅出索引(上)

本讲问题:为什么你改了我还看不见这个与不同的隔离级别有关。读未提交:你的修改即使未提交也可以看到读已提交:你的修改未提交我是看不到的,你如果提交的话,即使处于不同事务,我也可以看到。可重复读、可串行化:你的事务提交了,我还处在另外一个事务时,是看不到你的修改的,这是事务的隔离性。作者提问:你现在知道了系统里面应该避免长事务,如果你是业务开发负责人同时也是数据库负责人,你会有什么方案来避免出现或者处理这种情况呢?我觉得需要采用显示开启事务的方式启动事务。在开发过程中,尽可能的减小事务范围,少

2021-07-04 21:08:08 67

原创 第二讲-日志系统:一条SQL更新语句是如何执行的-问题分析

本讲问题:一条SQL更新语句是如何执行的1.首先你需要连接到这个服务器,这时候与你交互的是连接器。连接器负责与客户端建立连接、获取权限、维持和管理连接。2.查询缓存(MySQL8.0删掉了这个功能)3.如果没有命中缓存,那么就要开始真正执行语句。分析器需要对你的SQL语句做解析,判断你输入的SQL语句是否满足SQL语法。4.经过了分析器,MySQL还需要对你的SQL语句进行优化,这时候涉及到的就是优化器,选择成本最小的执行计划。5.最后就是执行器,分析器告诉你要做什么,优化器告诉你应该怎么做,而执

2021-07-04 20:16:33 77

原创 第一讲-基础架构:一条SQL查询语句是如何执行的-问题分析

本讲问题:一条SQL查询语句是如何执行的1.首先你需要连接到这个服务器,这时候与你交互的是连接器。连接器负责与客户端建立连接、获取权限、维持和管理连接。2.查询缓存(MySQL8.0删掉了这个功能)3.如果没有命中缓存,那么就要开始真正执行语句。分析器需要对你的SQL语句做解析,判断你输入的SQL语句是否满足SQL语法。4.经过了分析器,MySQL还需要对你的SQL语句进行优化,这时候涉及到的就是优化器,选择成本最小的执行计划。5.最后就是执行器,分析器告诉你要做什么,优化器告诉你应该怎么做,而执

2021-07-04 17:09:11 58

原创 Leetcode算法系列八(搜索)

5道经典深度优先搜索与宽度优先搜索相关题目例1:岛屿数量(medium)(深搜、宽搜)200. 岛屿数量算法伪代码代码例2-a:词语阶梯(medium)(宽搜、图、哈希表)127. 单词接龙算法伪代码代码例2-b:词语阶梯2(hard)(记录路径的宽搜、图、哈希表)126. 单词接龙 II算法伪代码代码例3:火柴棍摆正方形(medium)(回溯深搜、位运算)473. 火柴拼正方形算法伪代码代码例4:收集雨水2(hard)(带优先级的宽度优先搜索、堆)407. 接雨水 II算法伪代码代码例1:岛屿数量(me

2021-02-04 16:06:11 150

原创 LeetCode解析------473. 火柴拼正方形-位运算

473. 火柴拼正方形还记得童话《卖火柴的小女孩》吗?现在,你知道小女孩有多少根火柴,请找出一种能使用所有火柴拼成一个正方形的方法。不能折断火柴,可以把火柴连接起来,并且每根火柴都要用到。输入为小女孩拥有火柴的数目,每根火柴用其长度表示。输出即为是否能用所有的火柴拼成正方形。示例 1:输入: [1,1,2,2,2]输出: true解释: 能拼成一个边长为2的正方形,每边两根火柴。示例 2:输入: [3,3,3,3,4]输出: false解释: 不能用所有火柴拼成一个正方形。注意:给定

2021-02-01 21:57:00 100

原创 LeetCode解析------200. 岛屿数量-深度优先搜索

200.岛屿数量给你一个由 ‘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”,“

2021-01-25 00:05:26 149 2

原创 Leetcode算法系列七(哈希表与字符串)

1.6道经典 哈希表与字符串的相关题目例1:最长回文串(easy)(字符哈希)例2:词语模式(easy)(字串符哈希)例3:同字符词语分组(medium)(数组哈希)例4:无重复字符的最长子串(medium)(字符哈希)例5:重复的DNA序列(medium)(字串符哈希)例6:最小窗口子串(hard)(哈希维护窗口)例1:最长回文串(easy)(字符哈希)409. 最长回文串给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如

2021-01-17 19:44:07 158

原创 网安程序设计周赛(第一场)11-29

1.广场import java.util.Scanner;public class Square { public static void main(String[] args) { Scanner read=new Scanner(System.in); int i=0,j=0;//横向和纵向的砖块 int m=0,n=0,a=0; n=read.nextInt(); m=read.nextInt();

2020-11-30 10:18:11 86

原创 Leetcode算法系列六(二分查找与二叉查找树)

1.5道经典 二分搜索与二叉查找( 排序)树 树的相关题目预备知识:二分查找基础知识例1:插入位置(easy) (二分查找)例2:区间查找(medium) (二分查找)例3:旋转数组查找(medium) (二分查找)预备知识:二叉查找(排序)树基础知识例4:二叉查找树编码与解码(medium)例5:逆序数(hard) (二叉查找树应用)例1:插入位置(easy) (二分查找)搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会

2020-11-21 19:29:38 109

原创 SpringBoot实验合集(持续更新中...)

实验一 使用Spring Boot构建应用程序一、 实验目的1、 掌握使用IntelliJ IDEA创建Spring Boot应用程序的方法;2、 了解spring-boot-starter-parent的配置内容;3、 掌握如何利用Starter扩展Spring Boot应用程序的功能;4、 掌握如何配置Starter;5、 掌握如何通过属性文件定制Spring Boot应用程序的初始化参数;6、 掌握使用Spring Boot编写简单的单元测试;7、 了解Spring Boot应用程序

2020-11-08 11:36:40 2515 1

原创 Leetcode算法系列五(二叉树与图)

1.5道经典 二叉树与图 图的相关题目预备知识:二叉树基础知识例1:路径之和2(medium) (二叉树深搜)例2:最近的公共祖先(medium) (二叉树性质)例3:二叉树转链表(medium) (二叉树与链表)预备知识:二叉树层次遍历例4:侧面观察二叉树(medium) (二叉树宽搜)预备知识:图的基础知识例5:课程安排(有向图判断环)(medium)例1:路径之和2(medium) (二叉树深搜)113.路径总和 II难度中等给定一个二叉树和一个目标和,找到所有从根节点到叶子节

2020-11-07 19:15:55 142

原创 Leetcode算法系列四(递归、回溯与分治)

1.6道经典 递归、回溯、分治的相关题目预备知识:递归函数与回溯算法例1-a: 求子集(medium) (回溯法、位运算法)例1-b: 求子集2(medium) (回溯法)例1-c: 组合数之和2(medium) (回溯法、剪枝)例2:生成括号(medium) (递归设计)例3:N皇后 (hard) (回溯法)预备知识:分治算法与归并排序例4:逆序数 (hard) (分治法、归并排序应用)例1-a: 求子集(medium) (回溯法、位运算法)子集给定一组不含重复元素的整数数组 nu

2020-10-28 21:12:50 151

原创 Leetcode算法系列三(贪心)

1.7道经典贪心算法的相关题目例1:分糖果 (easy) (排序、贪心)例2:摇摆序列 (medium) (贪心)例3:移除K个数字 (medium) (栈、贪心)例4-a:跳跃游戏(medium) (贪心)例4-b:跳跃游戏2(hard) (贪心)例5:射击气球(medium) (排序、贪心)例6:最优加油方法(hard) (堆、贪心)575. 分糖果给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可

2020-10-19 10:21:06 105

原创 Leetcode算法系列二(链表)

1.8道经典链表常考题目例1-a:反转链表例1-b:反转链表2例2:链表求交点例3:链表求环例4:链表划分例5:复杂链表的复制例6-a:2个排序链表归并例6-b:K个排序链表归并206.反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?public class Solution {

2020-10-16 00:46:17 346

原创 Leetcode算法系列一(栈、队列、堆)

225.用队列实现栈(栈、队列)(easy)使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。你可以

2020-10-11 19:59:49 135

原创 LeetCode解析------198. 打家劫舍-动态规划

题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入:[2,

2020-09-20 14:15:50 114

原创 VScode+PHPstudy配置PHP开发环境详解

这篇文章主要介绍了VScode+PHPstudy配置PHP开发环境的步骤,整理了官方以及优秀第三方的内容,对于学习和工作有一定借鉴意义。准备安装的软件:VScode和PHPstudy。链接:https://pan.baidu.com/s/1T2uuXhE-2yK2DZwCNXXPsg提取码:2lak第一步:下载安装VScode编辑器。(步骤非常简单,下面附有参考安装链接,在这里不详细阐述。)参考安装教程:https://zhuanlan.zhihu.com/p/106357123.

2020-09-20 00:18:56 10802 26

原创 LeetCode解析------64. 最小路径和-动态规划

题目:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入: [[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1的总和最小。简单介绍:题目:最小路径和题目难度:中等使用语言:JAVA这道题来自leetcode题库的动态规划标签。解题思路:主要解法:动态规划解决该题分四步:1.确定最终状态:即到达右下角。2.转移方程(子问题

2020-09-12 14:48:31 112

原创 LeetCode解析------99. 恢复二叉搜索树-深度优先搜索

题目:二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例 1:输入: [1,3,null,null,2]1/3\2输出: [3,1,null,null,2]3/1\2示例 2:输入: [3,1,4,null,null,2]3/ \1 4/2输出: [2,1,4,null,null,3]2/ \1 4/3进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出一个只使用常数空间的解决方案吗?简单介

2020-08-30 13:32:02 103

原创 LeetCode解析------111. 二叉树的最小深度-深度优先搜索

题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \15 7返回它的最小深度 2.简单介绍:题目:二叉树的最小深度题目难度:简单使用语言:JAVA这道题来自leetcode题库的深度优先搜索标签。解题思路:主要解法:递归。**递归出口很容易可以想得到。观察一下,发现情况可以分为3种。

2020-08-30 10:17:34 116

原创 LeetCode解析------106. 从中序与后序遍历序列构造二叉树-深度优先搜索

题目:根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树:3/ \9 20/ \15 7简单介绍:题目:从中序与后序遍历序列构造二叉树题目难度:中等使用语言:JAVA这道题来自leetcode题库的深度优先搜索标签。解题思路:主要解法:递归。利用后序遍历来寻找root结点,再使用root结

2020-08-29 01:16:34 80

原创 LeetCode解析------105.从前序与中序遍历序列构造二叉树-深度优先搜索

题目:根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:3/ \9 20/ \15 7简单介绍:题目:从前序与中序遍历序列构造二叉树题目难度:中等使用语言:JAVA这道题来自leetcode题库的深度优先搜索标签。解题思路:主要解法:递归。利用前序遍历来寻找root结点,再使用root结点

2020-08-27 12:15:35 100

原创 LeetCode解析------104. 二叉树的最大深度-深度优先搜索

题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回它的最大深度 3 。简单介绍:题目:二叉树的最大深度题目难度:简单使用语言:JAVA这道题来自leetcode题库的深度优先搜索标签。解题思路:主要解法:递归。递归问题,主要是拆分子问题和明确递归出口。该题把查找整个树的最大深度

2020-08-21 18:10:43 188

原创 LeetCode解析------98. 验证二叉搜索树-深度优先搜索

题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:2/ \1 3输出: true示例 2:输入:5/ \1 4/ \3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。根节点的值为 5 ,但是其右子节点值为 4 。简单介绍:题目:验证二叉搜索树

2020-08-19 19:08:19 113

原创 LeetCode解析------5489. 两球之间的磁力-二分查找

题目:在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n 个空的篮子,第 i 个篮子的位置在 position[i] ,Morty 想把 m 个球放到这些篮子里,使得任意两球间 最小磁力 最大。已知两个球如果分别位于 x 和 y ,那么它们之间的磁力为 |x - y| 。给你一个整数数组 position 和一个整数 m ,请你返回最大化的最小磁力。示例 1:输入:position = [1,2,3,4,7], m

2020-08-16 17:09:16 126

原创 LeetCode解析------313. 超级丑数-堆

题目:编写一段程序来查找第 n 个超级丑数。超级丑数是指其所有质因数都是长度为 k 的质数列表 primes 中的正整数。示例:输入: n = 12, primes = [2,7,13,19]输出: 32解释: 给定长度为 4 的质数列表 primes = [2,7,13,19],前 12 个超级丑数序列为:[1,2,4,7,8,13,14,16,19,26,28,32] 。说明:1 是任何给定 primes 的超级丑数。给定 primes 中的数字以升序排列。0 < k ≤

2020-08-14 18:08:51 126

原创 LeetCode解析------剑指 Offer 40. 最小的k个数-分治算法

题目:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1 输出:[0]限制:0 <= k <= arr.length <= 100000 <= arr[i] <= 10000简单介绍:题目:最小的k个数题目难度:简

2020-08-12 18:05:33 153

原创 LeetCode解析------12.整数转罗马数字-字符串

题目:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。

2020-08-10 18:52:45 101

原创 LeetCode解析------307.区域和检索 - 数组可修改-线段树

题目:给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。update(i, val) 函数可以通过将下标为 i 的数值更新为 val,从而对数列进行修改。示例:Given nums = [1, 3, 5]sumRange(0, 2) -> 9update(1, 2)sumRange(0, 2) -> 8说明:数组仅可以在 update 函数下进行修改。你可以假设 update 函数与 sumRange 函

2020-08-07 22:50:59 131 1

原创 LeetCode解析------337. 打家劫舍 III-树

题目:在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:输入: [3,2,3,null,3,null,1] 3/ \ 2 3\ \ 3 1输出: 7

2020-08-05 22:48:14 161

空空如也

空空如也

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

TA关注的人

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