自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git 基础使用案例pull

从远程云端中拉取代码。

2025-07-14 12:17:11 83

原创 力扣经典题目之922. 按奇偶排序数组 II

今天继续给大家分享一道力扣的做题心得今天这道题目是922. 按奇偶排序数组 II题目如下:这道题目看上去很简单,但是要高效的完成此题目,还需要使用比较巧妙一点的办法,因为此题目需要返回一个奇数偶数和数组排序的序号相对应的数组。此题目我首先使用了最简单粗暴的解题方法,就是利用arraylist,创建两个数组分别存储奇数和偶数,然后安照奇数偶数的顺序来重新拼接起数组。然后有两个比较好的巧妙一些的解题方法是1,两次遍历,首先先遍历一遍数组把所有的偶数放进 ans[0],ans[2],ans[4],以此类推。再遍历

2025-02-05 10:52:35 264

原创 力扣经典题目之14. 最长公共前缀

今天继续给大家分享一道力扣的做题心得今天这道题目是14. 最长公共前缀 - 力扣(LeetCode)题目如下题目给出了一个字符串数组,我们需要找出这个数组中所有字符串元素的最长的公共前缀字符,公共前缀和即为这个字符串数组中所有字符串元素从前往后都有的最长的子串,例子如上面题目介绍所示,题目不难我们现在立刻开始解题,下面首先给出题解代码我们以逐个遍历数组,以第一个字符串为基准开始,获取从头开始的每一个字符,然后通过遍历判断当前获取的这个字符是否每一个字符串都有,如果有字符串没有此字符则就可以直接返回结果

2025-02-03 15:22:46 398

原创 力扣经典题目之3无重复字符的最长子串

今天继续给大家分享一道力扣的做题心得今天这道题目是 无重复字符的最长子串3. 无重复字符的最长子串 - 力扣(LeetCode)题目如下,点击上面题目名称即可跳转到力扣对应题目页面也来挑战这道题此题目不难,就是给我们了一个内容随机的一个字符串,在这其中找到一个不含重复字符的子串,如果没有做过此类找子串的题目那么我们就要学习一下专门用于解决此类型题的一个解题方法,叫做滑动窗口,这个方法在用于解决找各种子串问题上是一个非常好的方法下面我们来看如果使用此方法快速解决这道题目解题思路 数据结构选择:

2025-02-02 11:32:59 399

原创 力扣经典题目之55.跳跃游戏

引言在算法的世界里,有些问题看似简单,却蕴含着深刻的逻辑和策略。今天,我们将探讨一个经典的问题——跳跃游戏。这个问题不仅考验我们的逻辑思维,还涉及到如何高效地解决问题。让我们一起来看看如何通过简单的代码实现复杂的逻辑。跳跃游戏是一个经典的算法问题,它要求我们判断一个数组中的每个位置是否能够到达数组的最后一个位置。数组中的每个元素代表在该位置可以跳跃的最大长度。例如,,从位置0开始,我们可以跳到位置1或2,然后从这些位置继续跳跃,最终判断是否能够到达位置4。这个问题可以通过贪心算法来解决。贪心算法在每一步选择

2025-01-14 21:03:11 579

原创 力扣经典题目之120.三角形最小路径和

这个问题要求我们在一个数字三角形中找到从顶部到底部的路径,使得路径上的数字总和最小。三角形的每一行数字数量递增,从顶部开始,每一步可以选择移动到下一行的相邻数字上。对于这类问题是一种经典的动态规划的问题,我们使用动态规划的相关方法解决此题。动态规划(Dynamic Programming, DP)是一种通过把原问题分解为相对简单的子问题的方式来求解复杂问题的方法。在这个问题中,我们使用DP来存储到达每个位置的最小路径和。

2025-01-14 20:58:55 728

原创 力扣经典练习题之70.爬楼梯

今天继续给大家分享一道力扣的做题心得今天这道题目是70.爬楼梯题目如下:题目链接:70.爬楼梯 这个题目是一个经典的动态规划问题,它帮助我们理解如何通过分解问题来找到解决方案。在现实生活中,很多复杂的问题都可以通过这种方式来简化解决,比如在规划路线、资源分配等方面。问题分析: 题目设定我们正在爬楼梯,需要爬 个台阶才能到达顶部。每次可以爬 1 个或 2 个台阶。有多少种不同的方法可以爬到顶部这个问题可以通过递归或动态规划来解决。递归方法直观但效率较低,因为它会重复计算很多子问题。动态规

2025-01-13 20:49:17 872

原创 力扣经典练习题之198.打家劫舍

首先此题就是给我们了一个数组,代表可以偷的房屋中的对应的金额,我们是一个小偷,一次可以偷很多家房屋,但是不能偷和已经偷过的房屋所相邻的房屋,这是此题的重要限制条件此题目是动态规划中的经典问题,如果想要学习动态规划的话这道题目是必刷题,此题和所有动态规划的题目一样难点都在于如何构建动态转移方程话不多说,我们先来看解题代码,代码中有详细注释大家可以看一下,后面也有解题方法的详细分析

2025-01-13 20:04:24 964

原创 力扣经典练习题之40,组合总和2

此题我采用了经典的回溯法来求解组合总和问题,并通过排序、剪枝和去重等操作来优化算法,思路清晰,代码简洁,可以高效地找到所有满足条件的组合。数据结构的使用也比较合理,list用于存储最终结果,stack用于模拟递归过程中的组合情况,nums和target则是题目给定的输入参数。

2025-01-12 20:30:15 854

原创 一步迅速学会 B+ 树 的核心概念

B+ 树 🌳:是一种平衡多路查找树,用于存储和检索大量有序数据。它在 B 树的基础上进行了改进,具有以下特点:所有数据存储在叶子节点:与 B 树不同,B+ 树的所有数据记录都存储在叶子节点上,而非叶子节点仅存储键和子节点指针。叶子节点有序链表:叶子节点之间通过指针相互连接,形成一个有序链表。这使得范围查询非常高效。平衡性:所有叶子节点都位于同一层,且树的高度保持平衡,确保查找操作的时间复杂度为 O(log n)。

2025-01-12 20:04:24 405

原创 力扣经典题目之912.排序数组(使用希尔排序解决)

实现了希尔排序算法,能够有效地对数组进行排序。通过逐步减小间隔,算法从宏观调整过渡到微观调整,最终使用插入排序完成排序。理解间隔序列的选择和插入排序的实现是掌握希尔排序的关键。通过选择更优的间隔序列,可以进一步优化算法的性能。

2025-01-10 20:54:48 481

原创 一步迅速了解图的邻接矩阵的DFS遍历

这段代码通过邻接矩阵和DFS遍历展示了图的基本操作和遍历方法。邻接矩阵提供了图结构的直观表示,而DFS遍历则利用递归和访问状态数组有效地遍历图中的所有顶点。虽然邻接矩阵在空间效率上有局限性,但在某些情况下(如图的顶点数量较少或图较稠密时)仍然是一个有效的图表示方法。

2025-01-08 21:04:43 364

原创 使用LinkedList手撕图的邻接表

这个变量表示图中顶点的数量。它用于初始化和管理图的大小。这是一个数组,每个元素是一个。数组的索引对应图中的顶点编号,数组的元素是存储与该顶点相邻的顶点列表的链表。使用LinkedList是因为链表可以方便地进行插入和删除操作,适合动态地添加和删除边。

2025-01-08 20:20:53 1590

原创 力扣经典题目之2283. 判断一个数的数字计数是否等于数位的值

今天继续给大家分享一道力扣的做题心得今天这道题目是题目链接:2283. 判断一个数的数字计数是否等于数位的值题目如下:给你一个下标从 0 开始长度为 的字符串 ,它只包含数字。如果对于 每个 的下标 ,都满足数位 在 中出现了 次,那么请你返回 ,否则返回 。此题解题代码不难,但是在题目理解上有一些难点,下面是理解题目的要点。要点: 根据题目的给出例子可以看到我们是需要确定再给出的这个数字数组中数组的索引出现了对应的 num[ i ] 次的次数,注意对应关系以及是必须要出现的是

2025-01-07 20:48:05 1180

原创 力扣经典题目之219. 存在重复元素 II

今天继续给大家分享一道力扣的做题心得今天这道题目是219. 存在重复元素 II,我使用 hashmap 的方法来解题题目如下,题目链接:219. 存在重复元素 II 此题目给我们了一个整数数组 和一个整数 ,需要我们判断数组中是否存在两个 不同的索引 和 ,满足 且 。如果存在,返回 ;否则,返回 。题目不难理解下面是题目需要理解的要点: 要点:满足有一个重复的值并且这两个值的对应的在数组中的索引之差的绝对值要小于一个所给定的值k ,即可判断为为true返回tru

2025-01-07 20:24:34 810

原创 力扣刷题日记之提莫攻击

今天继续给大家分享一道力扣的做题心得今天这道题目是 495.提莫攻击题目如下,题目链接:https://leetcode.cn/problems/teemo-attacking直接对数组进行遍历分情况来累积时间然后计算出总时间玩过游戏的同志们应该很感兴趣这个题,对于这个中毒时间的的计算,只要理解了下面的几个难点这道题就非常简单了,难点一:提莫的攻击时间不是一个规律的时间,所以每次攻击都需要计算一下总中毒时间,即数组每遍历递增一次就需要判断一下总中毒需要增加多少时间 难点二:中毒总时间的计算不是每次都需要加一

2024-11-18 20:42:56 202

原创 力扣刷题日记之最大的连续1的个数

今天继续给大家分享一道力扣的做题心得今天这道题目是 485.最大的连续1的个数题目如下,题目链接:https://leetcode.cn/problems/max-consecutive-ones 这是一道很简单的题目,题目给了一个数组,其中全部都是1或者0这个两个元素,我使用了直接进行遍历所给数组然后记录最大的连续的个数的方式来直接解题下面是我的解题代码下面是力扣官方题解官方解题思路:一次遍历 为了得到数组中最大连续 1 的个数,需要遍历数组,并记录最大的连续 1

2024-11-18 12:00:03 321

原创 力扣刷题日记之找到数组中消失的数字

今天继续给大家分享一道力扣的做题心得今天这道题目是 448.找到数组中消失的数字题目如下,题目链接:https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array 题目所给数组范围在[1,n]之内,此题目的理解的难点在于通过什么方式来找的所缺失的数,所给的数组是无序的并且缺失一些数字,但是数目是和n 一样的,其中难点在于无序数组和其中的一些重复的数字使我们很难从中找出对应的缺失的数字,但是通过这个数组的

2024-11-17 18:20:02 313

原创 力扣刷题日记之150.逆波兰表达式求值

今天继续给大家分享一道力扣的做题心得今天这道题目是 150.逆波兰表达式求值题目如下,题目链接:https://leetcode.cn/problems/evaluate-reverse-polish-notation 这道题说是一道中等难度的题目,其实如果理解了其中的含义,实际上比简单题还要稍微简单一些,废话不多说我们直接开始分析题目, 这道题最核心的含义就是通过将这个String类型的数组中的数和运算符号按照其运算规则算完然后返回最后算出来的那个值就可以了,仔细看这个运算规则

2024-11-16 18:34:47 556

原创 3,Vue.js 兄弟组件通信:让组件间的合作更高效

假设我们有一个文件管理系统,左边是文件夹列表,右边是文件详情。我们需要让用户点击左侧文件夹时,右边显示对应的文件详情。这两个组件没有直接的父子关系,该如何实现通信是这篇文章的核心最简单的方法是通过共同的父组件来管理数据。让父组件扮演“中转站”的角色。左侧文件夹列表组件右侧文件详情组件方法 2:用事件总线如果两个组件层级太深,或者父组件不好直接传递数据,可以用事件总线。在 文件夹下新建一个 文件:2. 左侧组件发送事件3. 右侧组件接收事件方法 3:

2024-11-15 20:03:28 355

原创 2:Vue.js 父子组件通信:让你的组件“说话”

上一篇我们聊了如何用 Vue.js 创建一个简单的组件,这次咱们再往前走一步,讲讲 Vue.js 的。组件开发里,最重要的就是让组件之间能够“说话”,数据能流通起来。废话不多说,直接开干!

2024-11-15 20:00:02 524

原创 小白也能轻松上手的用 Vue.js 开发组件的简单教程

组件开发的基础步骤1. 创建一个基础 Vue 项目2. 创建一个简单的组件3. 在页面中使用组件

2024-11-15 19:55:55 379

原创 使用ArrayList逐步手撕stack

ArrayList。

2024-11-15 18:07:55 1305

原创 数据结构的学习之一步了解力扣中的经典数组问题

map。

2024-11-15 17:39:36 221

原创 一步迅速了解Linux

1,什么是LInux?1,什么是LInux?2,Linux特指什么?即最操作系统最核心的那一部分功能.负责管理 计算机的硬件资源,为上层应用程序提供一个稳定、统一的运行环境。主要职责:用户直接使用内核不方便所以在Linux内核的基础上,不同的机构或者公司对其进行封装,这就是发行版就有收费的和免费的如CentOS是一个免费的LInux发行版4,Linux系统操作用途用哪些?

2024-09-16 14:03:46 667

原创 一步迅速了解 Spring 中的事务管理

数据库事务管理就是对一次数据库操作过程中执行的多条语句进行管理,保证一次对数据库操作过程中多条SQL要么都直行程,要么都不执行,从而保证数据的一致性我们在开发企业应用时,对于业务人员的一个操作实际是对数据读写的多步操作的结合。由于数据操作在顺序执行的过程中,任何一步操作都有可能发生异常,异常会导致后续操作无法成,此时由于业务逻辑并未正确的完成,之前成 功操作数据的并不可靠,需要在这种情况下进行回退。

2024-08-29 21:08:19 437

原创 一步迅速了解Spring框架中的几大特点

AOP 编程思想是Java中的,不是Spring专有的,是Spring使用AOP这一编程思想。使用动态代理的方式在执行方法前后或者出现异常的时候做加入相关的逻辑。是一个基于 Java 语言的 AOP 框架,它提供了强大的 AOP 功能,且其实。@AfterReturnning 返回通知:方法成功执行之后通知,出现异常不执行。通知是指一个切面在特定的连接点要做的事情(增强的功能)。前置通知,后置通知,环绕通知,异常通知,返回通知.知分为方法执行前通知,方法执行后通知,环绕通知等。日志:在执行前进行日志处理。

2024-08-29 20:51:46 1033

原创 一步迅速了解Spring框架的几个特点

特点1:IOC(控制反转)

2024-08-28 21:02:59 978

原创 一步迅速了解Spring框架

将程序中的一些公共的非业务代码分离提取出来,然后在业务代码执行的时候,给他们横切进来,使用的动态代理的机制实现,在我们的业务代码,不显示调用,但是执行业务代码,会通过代理对象,调用非业务代码。以前我们在程序中需要对象,都是自己new,例如:new StudentDao对象,Spring 是一个轻量级的,IOC 和 AOP 的一站式 Java 开发框架,是为了简化企。除了核心的IOC和AOP功能之外,还对数据访问层,web层都有封装,所以是一站式的。inversion of Control 控制反转。

2024-08-28 20:35:58 844 2

原创 Java中的反射

Java反射的概念JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个;这种动态获取信息以及动态调用对象的方法的功能称为 java语言的。2,Java反射的作用用于获取类的信息二,JAVA反射相关的API。

2024-08-27 21:50:50 1214

原创 Mybatis中的缓存

缓存(cache)的作用是。缓存实现的原理是中,当再次需要获取该对象时,直接从内存(缓存)中直接获取,不再向数据库Mybatis 有一级缓存和二级缓存。的作用域是同一个 SqlSession,在同一个 sqlSession 中两次执行相同的 sql 语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存中获取数据将不再从数据库查询,从而提高查询效率。当一个 sqlSession 结束后该 sqlSession 中的一级缓存也就不存在了。

2024-08-27 19:31:22 1254

原创 Mybatis的搭建以及使用

定义 resutlMap。

2024-08-26 20:10:11 1435

原创 初识Mybatis框架

mybatis将jdbc中的接口进行封装,提供了自己的雷和接口实现mybatis可以使用xml配置和注解的方式,将数据库中记录自动映射到JAVA对象中,是一种ORM实现(对象关系映射)将可以自动将数据映射到对象中的这种框架,也称为ORM框架mybatis还提供了动态sql和数据缓存1,在IDEA中,安装一个插件 MybatisX此插件可以帮助检测出idea不会报错的一些错误等等2,数据库连接池。

2024-08-25 23:37:23 245

原创 Web前端基础

结构C/S 结构Client+Server 客户端+服务器需要在电脑上安装的重终端.qq.微信.腾讯会议需要装一个特定的客户端才能运行B/S结构百度,京东,腾讯新闻.....浏览器输入网址,访问网站Brower + Server 浏览器 + 服务器Java主要是一个后端语言,用来开发服务器端程序学习一些网页知识,为程序提供操作界面。

2024-08-09 12:14:32 320

原创 JAVA基础知识点4

1.clone方法 保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。6.hashCode方法 该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。7.wait方法 wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。8.notify方法 该方法唤醒在该对象上等待的某个线程。9.notifyAll方法 该方法唤醒在该对象上等待的所有线程。

2024-08-02 21:35:23 234

原创 JAVA基础知识点3 (String 和 StringBuffer 以及 StringBuilder 的特点以及区别)

(1)String的特点:String是final修饰的字符序列是不可改变的,是字符串常量,一旦初始化就不可以被更改,因此是线程安全的因为是常量每次对其操作都会生成一个新的字符串对象,所以在多线程环境下具有线程安全 的优点,但也会导致频繁的对象创建、销毁影响程序性能(2)StringBuffer类:StringBuffer产生的原因:String类适用于程序中不改变字符的情况,若对字符串的每次修改都创一 个新的 String对象,显然不利于提高程序的效率。

2024-08-02 20:48:01 604

原创 JAVA基础知识点2

下面是题目中代码的块的划分://静态变量//构造块//静态块static题目分析:静态域:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行。1 静态域 :首先执行,第一个静态域是一个静态变量 public static Test t1 = new Test();创建了Test 对象,会执行构造块代码,所以输出blockA。然后执行第二个静态域(即静态代码块)输出blockB。

2024-08-01 11:19:26 401

原创 JAVA基础知识点

其中:类中静态块按照声明顺序执行,并且(1)和(2)不需要调用new类实例的时候就执行了(意思就是在类加载到方法区的时候执行的)等价于 [ \f\n\r\t\v]。\W 匹配非字母、数字、下划线。等价于 [^ \f\n\r\t\v]。等价于 \x0b 和 \cK。等价于 \x0c 和 \cL。等价于 \x0d 和 \cM。等价于 \x09 和 \cI。等价于 \x0a 和 \cJ。\D 匹配一个非数字字符。(5) 子类 非静态对象和非静态代码块。(3) 父类非静态对象和非静态代码块。

2024-08-01 11:08:11 299

原创 HashMap 和 Hashtable 的详细区别

HashMap和Hashtable都是 Java 中用于存储键值对的集合类。

2024-07-27 17:17:03 862

原创 abstract 类 和 interface接口的区别

abstract 类 和 interface接口的各种详细区别

2024-07-27 11:06:42 422

空空如也

空空如也

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

TA关注的人

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