自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法题解记录23+++最小栈(百日筑基)

题目难度:中等设计一个支持pushpoptop操作,并能在常数时间内检索到最小元素的栈。实现MinStackMinStack()void pop()int top()--> 返回 -3.--> 返回 0.--> 返回 -2.topgetMinpushpoptopgetMin3 * 10^4。

2024-05-08 10:45:42 890

原创 算法题解记录22+++无重复字符的最长子串(百日筑基)

难度:中等给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc",所以其长度为 3。1因为无重复字符的最长子串是"b",所以其长度为 1。3因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是的长度,"pwke"是一个子序列,不是子串。

2024-04-30 14:33:16 367

原创 算法题解记录21+++打家劫舍(百日筑基)

题目难度:中等你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,。给定一个代表每个房屋存放金额的非负整数数组,计算你,一夜之内能够偷窃到的最高金额。[1,2,3,1]4偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4。12偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。

2024-04-23 18:41:26 743

原创 算法题解记录20+++

难度:简单给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。pos。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回true。否则,返回false。true链表中有一个环,其尾部连接到第二个节点。true链表中有一个环,其尾部连接到第一个节点。false链表中没有环。-1。

2024-04-22 13:10:27 578

原创 算法题解记录19+++回文链表(百日筑基)

难度:简单给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。truefalse[1, 10^5]1.回文的概念:回文是指,倒着读和正着读一致的数、字符串或链表,比如:121,"sks","oopoo"2.链表:链表是一种线性结构,和数组类似。二者的本质区别,是链表不拘束于存储区块,其允许“任意存储”。比如:节点a存在地址1,而a的下一个节点b,存储在地址100。

2024-04-21 14:02:22 591

原创 算法题解记录18+++搜索二维矩阵Ⅱ

本题可以说是运用二分查找的典例,即使是面对矩阵,只要是它保持“排序好”这样的结构,就一定能采用二分查找法。【你知道的,对于排序好的数组,二分查找几乎是最优秀的算法】当然,答案提供的是“Z字形查找法”【这个概念我搜不到,不过其实质,就是矩阵边界的缩减】“Z字形”排查效率高于二分查找法,只是因为题目结构特殊,一般不会有这种结构。

2024-04-20 13:05:19 864

原创 对线程、进程和Java线程池的理解

人生最大的悲哀,莫过于我本可以。我钻研操作系统,后选修Linux操作系统,做过父进程生子进程的作业,还做过IO多路复用、多线程的网络游戏,自认为对线程、进程的理解颇深。然,多次面试,面对面试官:“你对Java的线程池机制有所了解吗?我不由噤声。面试官再问:“你说一说进程与线程的区别。我更是大惊失色,支支吾吾,拾了一些“进程不共享资源”、“进程对应多个线程”、“线程是执行最小单位”、“一个进程至少一个线程”来答,看着面试官越来越失望的脸色,我自知面试必挂。苦也!

2024-04-19 18:54:56 878

原创 算法题解记录17+++完全平方数

这是楼主第一次不靠题解,挑战动态规划的中等题目,虽然最终结果只超过了5%的人,不过我也很满意了。本题楼主首先采用朴素的递归型动态规划,接着优化算法,使用借助HashMap存储临时数据的递归型动态规划,几次时间复杂度都很高,最后优化成借助数组存储数据的迭代型动态规划。

2024-04-19 12:15:31 940

原创 算法题解记录16+++二叉树的直径(百日筑基)

其实题主本人看到这个题是有点懵的。二叉树的直径?又是简单题,不就是左子树深度+右子树深度就行了?【在此,定义根节点深度为0】写了半天,奇怪,计算最大深度我是会了,左右子树最大深度怎么算?接着总算想起用两个变量存储左右子树深度,提交答案,怎么莫名出错?随后注意到:树的直径不一定从根节点通过,这才大悟,可是更懵了,不从根节点通过,一个随机节点怎么找?该怎么解决?后来也是看了题解,理解了一遍。

2024-04-18 16:11:31 838 1

原创 快慢指针:如何判断单链表是否有环

1.链表:本题链表为单链表,链表头节点存在数据,保证无特殊情况。2.父辈节点的定义:对于链表a->b->c->d,如果认为a是b、c、d的父辈(或祖宗辈)节点。3.环:存在一个节点X,它指向其父辈(或祖宗辈)结点,说明有环。【本质就是,有一个节点存在两个前驱节点(当然,如果是头节点,仍是一个,所以这个规律用于判断环时,一致性较差,需要额外讨论)4.环的性质:我们可以发现,一旦链表中存在环,那么链表不会出现一个节点D,其下一个节点为null,也就是D.next!=null。

2024-04-18 12:24:32 993

原创 算法题解记录15+++两数相加(百日筑基)

给你两个的链表,表示两个非负的整数。它们每位数字都是按照的方式存储的,并且每个节点只能存储数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

2024-04-17 18:38:44 587

原创 算法题解记录14+++二叉树的最大深度(百日筑基)

对于最左链,如果root==null,那么返回0。对于本题,其实同理,因为将左、右结点都传递过去了,不必担心缺少的问题。

2024-04-16 15:15:26 816

原创 算法题解记录13+++杨辉三角(百日筑基)

本题是动态规划的问题,我也在此阐述我对动态规划的理解,如有不准确、缺失、错误,敬请斧正。

2024-04-16 10:46:49 784

原创 算法题解记录12+++划分字母区间(百日筑基)

本题我首先分享我的思路,再在补充中说明贪心算法。

2024-04-15 14:38:13 767

原创 算法题解记录11+++从前序与中序遍历序列构造二叉树(百日筑基)

给定两个整数数组preorder和inorder,其中preorder是二叉树的inorder是同一棵树的,请构造二叉树并返回其根节点。

2024-04-14 12:07:43 586

原创 算法题解记录10+++缺失的第一个正数

给你一个未排序的整数数组nums,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为O(n)并且只使用常数级别额外空间的解决方案。3范围 [1,2] 中的数字都在数组中。21 在数组中,但 2 没有。1最小的正数 1 没有出现。1.了解基本操作:既然是找到缺失的第一个正数,必然涉及遍历(查找),其它的暂时看不出来。2.模拟操作:随便提供可能的数据,并得到它们的答案,如下图。人眼很快能得到结果,目前看不出步骤。

2024-04-13 15:31:55 1104

原创 算法题解记录9+++有效的括号(百日筑基)

给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。本题1、2的描述,结合后,我的理解是:左括号右括号必须成对出现,且不允许嵌套。比如:"()[]{}[]"表示正确、但"([)] "表示错误,因为(括号和)括号没连在一起。该题在提交时,有一个用例"([)]"答案为错误,故我在此提示。

2024-04-12 11:07:36 623

原创 算法题解记录8+++爬楼梯(百日筑基)

假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?n = 22有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶n = 33有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶1.猜测该题可能涉及的基础操作:目前看不出来。2.拿特殊的题目尝试一下:可以发现,第一层台阶非常特殊,虽然题目提供两种操作,但是我们只能爬1步,因此只有1种方案。

2024-04-11 15:17:45 923 1

原创 算法题解记录7+++反转链表(百日筑基)

给你单链表的头节点head,请你反转链表,并返回反转后的链表。

2024-04-10 11:44:49 806 1

原创 算法题解记录6+++相交链表(百日筑基)

的输入如下(你设计的程序。

2024-04-09 17:12:32 546

原创 算法题解记录5+++二叉树中序遍历(百日筑基)

给定一个二叉树的根节点root,返回它的遍历。[1,3,2]root = [][]root = [1][1][0, 100]解题准备:其实这道题的代码很简单,可以说是非常基础,但是正因为流传广、基础,很多人都不了解其原理,在此大致解释一下。【本人也是新手】1.了解二叉树:二叉树是树状结构中比较特殊的一种,从根节点看,它有且只有左子树和右子树,从每一个节点看,同样是有且仅有左右子树(左子树为null、右子树为null也看成拥有子树),具有迭代性。

2024-04-09 13:01:02 644

原创 算法题解记录4+++螺旋矩阵(百日筑基)

如果是第一层,明显是从0到column-1(列-1),第二层,则为1到column-2(列-2),用代码实现也不难,但是有点复杂,我们既然用left、right界定左右,那么能不能借助left、right呢?上:我们用top界定了行数,top初值为0(对于第一层,这个数为0,第二层,这个数为1,也就是每次遍历一层,都要top+1【遍历结果】),那么只要temp做好即可。由于解题难点分析1已知,对于完整的一层,遍历结果一致,那么,对于残缺的一层,我们的重点应该在于,如何跳出循环?每次结束,top+1。

2024-04-07 11:42:12 784

原创 算法题解记录3+++矩阵置零(百日筑基)

给定一个m x n的矩阵,如果一个元素为,则将其所在行和列的所有元素都设为。请使用算法。

2024-04-01 15:28:49 607

原创 算法补充+++字母异位词分组

本题其实我在“百日筑基2”已经有过详解,不过由于时间复杂度过高,并没有写出来,在官方题解里想了一阵,在此带来我的学习成果。

2024-04-01 11:43:22 862

原创 算法题解记录2+++字母异位词分组(百日筑基)

给你一个字符串数组,请你将组合在一起。可以按任意顺序返回结果列表。是由重新排列源单词的所有字母得到的一个新单词。

2024-03-30 10:48:27 557 1

原创 算法题解记录1+++百日筑基

给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。

2024-03-29 11:37:01 871 1

原创 索引index---数据库高级特性

想象这样一个场景:地上有500个汉字小卡片,我想让你找到“我”这个汉字,你会怎么做?朴素的解决思路是:拿起第一张小卡片,看看是不是“我”,是的话提交,不是的话,拿起第二张小卡片……由于每个小卡片都可能命中这个汉字(也可能这500个小卡片里都没有“我”这个字),因此其时间复杂度为O(n)。问题来了:如果有300个人,分别让你查找不同的汉字,这样的查找效率实在是太低了。假设看一张卡片1秒,看250张卡片能确保找到需要的汉字,这300个人排队查找,那么时间为1*250*300=20.833(小时)。

2024-03-28 15:25:48 509

原创 MySQL事务处理

由于事务本质是数据库操作软件DBMS提供的,所以不同的DBMS提供的事务操作不太一样,比如MySQL和Redis在语法上就有差别,本文主要记录MySQL的事务处理事务是数据库中一个重要概念,对于转钱和网购订单这种操作,它们可能涉及多个基础操作,比如转钱,要update更新A方,又要update更新B方,甚至对于网购,可能还要insert插入一个订单数据,这些操作在并发情况下,很可能出错。比如,B是一个生意人,现在有2个人同时给他发钱。

2024-03-26 11:17:59 241

原创 一篇文章了解SpringMVC的6个基础注解的基本用法

第二个问题,我可以告诉你的是,关键在于Controller层,虽然数据对于用户来说更重要,但对于我们开发者,我认为学会处理数据比单纯的数据重要一点,毕竟数据是死的,没法学到什么东西。我们知道,Spring MVC是Spring框架中专用于Web开发的部分,因此想要学会使用它,关键是知道,如何用它提供的API,来处理HTTP请求。

2024-03-20 17:06:22 721 1

原创 一篇文章分清Spring、SpringBoot、SpringMVC、Mybatis等常用开发工具的作用

在学习SSM过程中,我发现学了很久后,学会了如何开发和部署,却对SSM本身并不了解,甚至相当疑惑,在此,为了方便各位学习,我笼统地介绍一下SSM。

2024-03-20 12:05:50 857 1

原创 一篇文章了解数据库

在学习C或者Java时,我们了解过文件、文件流的概念,有一些数据不是临时数据或缓存数据,我们希望把它们“永久”存储起来,并且在以后也可以使用,怎么做?可以依靠C或Java提供的文件操作接口,比如write、read、fwrite、fread等等,把数据写入硬盘,或者从硬盘中拿数据。文件是很自由的,我们可以向里面写二进制、文本、字符加数字等等,这是其优点,但也是其缺点。对于一个人,他有3个属性,姓名name、身份证id、年龄age。

2024-03-05 11:46:24 780 1

原创 一篇文章了解web

1.HTML:是浏览器展示数据的骨架,目前几乎所有网页都是以这种形式展开。当然,为了更好地展示数据、使界面更美观,出现了CSS样式定义。后来,为了使用户能够和界面互动、动态展示页面,出现了Javascript,现在比较常用的js框架就是Vue,学习起来很简单,开发起来更加方便。可以说,HTML就是前端开发的灵魂所在。【当然,现在越来越卷,各路人才把CSS都玩成花了】2.HTTP应用层协议:我们知道,现在的网络一般采用5层协议栈,物理层、数据链路层、网络层、传输层和应用层。

2024-03-04 12:04:51 493 1

原创 学习c语言-----结构体

人无完人,如果我写的文章有什么疏忽、错误或者缺漏,非常欢迎各位在评论区里斧正,在此感谢您观看本篇文章!此前,我们已经学习过许多变量,如 int 整型、 char 字符、 double 浮点型等等,这些变量可以存储许多数据了。然而,在许多程序中,一个变量并不是独立存在的,很可能在某一个变量变化的同时,另一个变量也要变化。如果这两个变量都是在主函数main中变化,那还好说,直接把俩个量同时变化的过程按顺序写就好了。然而,如果两个变量都是在自定义的函数中变化呢?那麻烦了一点,但是也可以通过传递参数

2022-04-03 14:18:41 768

原创 学习c语言-----随机数

由于之前有人联系我,问我c中的随机数有什么用途,所以我将在这里以一个简单的游戏来写出它的用途

2022-03-23 17:11:48 4094

原创 学习c语言-----指针

指针应该是c中最难入门的内容之一了,这篇文章会以一个基础的角度来理解指针,欢迎大家前来观看。

2022-03-19 12:31:04 948

原创 学习C语言-----函数

如果我写的东西有什么疏忽或者错误,欢迎在各位评论区斧正,在此感谢您观看本篇文章!函数是c语言一个重要模块,所以一定要好好学习函数的相关知识。首先,函数的结构如下所示://返回值 函数名(参数类型)//例子如下void funtion(int){ //函数功能模块}由此结构,我们将函数分成三部分理解。1-----返回值返回值即 void、int、float等等数据类型。而在我的理解里,返回值是指,函数实现具体的功能后,返回的结果,用return 语句来返回,可以返回

2022-03-14 16:08:27 759

空空如也

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

TA关注的人

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