- 博客(82)
- 收藏
- 关注
原创 算法训练 第九周
由于给定的链表是排好序的,因此重复的元素在链表中出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。由于链表的头节点可能会被删除,因此我们需要额外设定一个头节点。
2023-11-28 19:49:19
206
原创 算法训练 第八周
使用递归的方式遍历二叉树,判断当前节点是否为叶子节点,如果是叶子节点,判断路径和是否等于目标和。如果不是叶子节点,则递归遍历左右子树,直到找到叶子节点或者遍历完整个二叉树。
2023-11-21 22:20:45
140
原创 算法训练 第八周
遍历字符串数组中的每个字符位置i。对于每个字符位置,比较所有字符串在该位置上的字符是否相等,如果有不相等的字符或已经到达某个字符串的末尾,则返回最长公共前缀。首先将第一个字符串设为最长公共前缀(prefix)。遍历字符串数组中的每个字符串,滚动更新遍历到的字符串和记录的公共前缀的公共前缀。将字符串数组分成两半,分别求左半部分的最长公共前缀和右半部分的最长公共前缀。比较l左右的最长公共前缀,得到整个数组的最长公共前缀。
2023-11-21 22:14:16
136
原创 Redis解决缓存问题
例如我们在一个查询商铺的业务流程中,当我们获取的前端发送来的查询某个商铺的请求之后,我们可以先在redis中查询是否有此商铺的数据,如果有,我们可以直接将redis中的数据返回给前端,如果没有,我们再去对数据库进行查询操作,如果在数据库中查询到了数据,我们先将此数据存入redis中,然后再将数据返回给前端。我们一般会将一些用户要经常访问的数据先写入到缓存中去,当用户需要访问这些数据的时候我们直接从缓存中获取这些数据再返回给用户,这样就可以避免对数据库的大量查询,也能提高业务的效率。
2023-11-13 22:55:18
1589
原创 算法训练 第六周
本题要求我们使用栈这个数据结构来模拟实现队列的各种操作,我们的具体思路是使用两个栈,将一个栈当作输入栈,用于压入 push传入的数据;另一个栈当作输出栈,用于 pop和 peek 操作。
2023-11-08 12:20:26
118
原创 算法训练 第五周
本题给出我们一个数字x,要求我们返回这个数的算术平方根,结果只保留整数部分,不得使用语言内置的求平方根的方法,本题也是对于二分法的一种扩展。
2023-11-02 18:53:44
145
原创 算法训练 第五周
本题给了我们一个数组,要求我们找出这个数组中出现次数大于这个数组元素总量一半的那个元素,也可以理解为找出数组中出现次数最多的那个元素,本题的解决方法有很多,在此我们主要讨论三种解决思路。
2023-11-02 18:36:08
102
原创 数据结构Demo——简单计算器
本项目实现了一个通过网页访问的简单计算器,它可以对带括号的加减乘除表达式进行计算并将计算结果返回给用户,并且可以对用户输入的表达式进行合法性判断,以下是项目的界面展示:使用者可以通过点击网页上的按钮来输入一个算数表达式,之后点击等于号便可以将结果展示在界面上,具体效果如下:在这个计算器中主要使用了前端html,css,JavaScript,后端spring boot以及数据结构中栈的使用方式与相关的算法。以上为html部分的代码,主要是对使用者的界面进行了整体布局,确定了各个按钮的位置与功能。以上
2023-10-30 21:25:27
650
原创 算法训练 第四周
通过以上特征我们就可以进行二分查找了,我们先定义两个指针left,right分别指向数组的左边界和右边界,然后在每次查找的过程中,我们都选取左右边界的中点mid,比较target和nums[mid]的大小,如果相等则说明找到了目标值,此时我们需要的下标就是mid,如果nums[mid]大于target说明目标值在整个查找范围的左半部分,此时我们需要将right更新为mid - 1,此时就将查找范围缩减了一半,如果nums[mid]小于target此时和上述过程同理。空间复杂度:O(1)。
2023-10-25 11:02:41
168
原创 KMP算法
KMP 算法(Knuth-Morris-Pratt 算法)是一个著名的字符串匹配算法,效率很高,由Knuth,Morris和Pratt这三位学者发明。KMP的主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。KMP 算法的时间复杂度为 O(m+n)。
2023-10-12 17:52:12
205
1
原创 知识总结 1
如果发送端发的太快,导致接收端的缓冲区被打满,这个时候如果发送端继续发送,就会造成丢包,继而引起丢包重传等等一系列连锁反应,反而还降低了速率。业务数据已经到了 主机 B 了,反馈的 ACK 没有回过去,发送方等待一会之后,就触发了重传!主机 A 发了半天之后,看到了连续的好几个 1001,它就明白了,是 1001 这个数据丢了!此时,应用程序在读取数据的时候,就可以灵活的进行了,可以一次读 M 个字节,分 N 次读。但是基于延时应答等的基础上,延时一会,就可能和返回 响应数据,时间上重合了。
2023-09-30 17:54:13
611
原创 算法训练 第三周
本题给了我们一个数组,这个数组的第i个元素表示股票第i天的价格,要求我们选择一天买入股票,并在这天之后的某一天卖出,问我们何时能获得最大利润。
2023-09-19 21:40:15
797
原创 算法训练 第二周
我们需要先创建一个新的头节点ph,然后遍历给出的单链表,把遍历到的每一个节点用头插法接到ph的后面,这样我们就可以得到一个反转后的链表了,最后返回ph的next即可。本题给我们了一个单链表的头节点head,要求我们把这个单链表的连接顺序进行逆置,并返回逆置后的链表头节点。
2023-09-15 16:24:25
507
原创 算法训练 第二周
本题给出了两个字符串ransomNote和magazine,需要让我们判断ransomNote中的字符能不能由magazine中的字符构成,也就是说我们需要将所有ransomNote中的字符找到一个在magazine中与这个字符相同的字符,且每个字符只能使用一次,这主要考查了我们对hash表的应用。
2023-09-14 19:48:16
116
原创 Web跨域问题
跨域,指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略所造成的,是浏览器对于JavaScript所定义的安全限制策略。在web开发的过程中,因为前后端的分离我们经常会遇到跨域问题,从而导致前后端的数据无法互通,那么跨域问题究竟是什么,而他又如何解决呢?跨域问题的解决方法针对不同的web项目有很多种,本文我们主要介绍普通web项目和spring boot项目的跨域问题如何解决。此时我们可以在浏览器中发现,在访问此接口的过程中出现了一个报错,并且没有访问到我们需要的那个接口。
2023-09-11 13:24:15
554
1
原创 算法训练 第一周
我们可以循环遍历这个字符串,如果遇到"{}“,”[]“,”()“,就将它们用”“代替,重复此过程直到字符串不再包含上述三种子串,此时如果字符串为”"就说明所有的括号都有对应的匹配,就返回true,如果字符串不为空,就说明有些括号没有对应的匹配,此时就返回false。本题给出了一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,要求我们我们判断这个字符串中的左右括号能否完全匹配,简单来说就是一个左括号必须要有一个和它对应的右括号,如果不能完全匹配就返回false。
2023-09-06 20:10:19
126
原创 算法训练 第一周
本题给出了两个整数数组nums1和nums2,这两个数组均是非递减排列,要求我们将这两个数组合并成一个非递减排列的数组。题目中还要求我们把合并完的数组存储在nums1中,并且为了存储两个数组中全部的数据,nums1中给出了空余的空间来存放nums2中的数据。本题的做法有很多,在此我们主要讨论三种解题思路。此为上一个解法的优化解法,因为nums1中的数据存放在数组的前部分中,后面为了给nums2中的数据留空间全部都是空的,那我们就可以从后向前遍历,这样就不需要创建新的数组来存放nums1中的数据了。
2023-09-04 20:22:19
3698
原创 JAVAweb 09
概念: 一门客户端脚本语言运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎脚本语言:不需要编译,直接就可以被浏览器解析执行了可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 : C-- ,后来更名为:ScriptEase1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript。
2023-08-02 10:25:04
168
1
原创 JAVAweb 07
第七章 HTMLweb概念概述HTMLweb概念概述* JavaWeb: * 使用Java语言开发基于互联网的项目* 软件架构: 1. C/S: Client/Server 客户端/服务器端 * 在用户本地有一个客户端程序,在远程有一个服务器端程序 * 如:QQ,迅雷... * 优点: 1. 用户体验好 * 缺点: 1. 开发、安装,部署,维护 麻烦 2. B/S: Browser/Server 浏览器/服务器端 * 只需要一个浏览器,用户通过不同的网址(URL
2023-07-22 10:01:24
87
1
原创 JAVAweb 06
当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。导入jar包 (两个) c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar ,标准接口:DataSource javax.sql包下的。概念:其实就是一个容器(集合),存放数据库连接的容器。一般我们不去实现它,有数据库厂商来实现。获取连接: getConnection。C3P0:数据库连接池技术。
2023-07-21 10:19:02
62
1
原创 JAVAweb 05
JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。1.复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下。1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar。5. 获取执行sql语句的对象 Statement。2.右键–>Add As Library。
2023-07-20 10:25:45
69
1
原创 JAVAweb 04
INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES(‘孙悟空’,‘男’,7200,‘2013-02-24’,1);INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES(‘唐僧’,‘男’,9000,‘2008-08-08’,2);INSERT INTO dept (NAME) VALUES (‘开发部’),(‘市场部’),(‘财务部’);
2023-07-19 08:14:03
137
1
原创 MySQL数据库基础 18
MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多MySQL Optimizer优化器进行了改进。不仅在速度上得到了改善,还为用户带来了更好的性能和更棒的体验。
2023-07-15 08:49:12
253
1
原创 MySQL数据库基础 17
MySQL从5.0.2版本开始支持触发器。MySQL的触发器和存储过程一样,都是嵌入到MySQL服务器的一段程序。触发器是由事件来触发某个操作,这些事件包括INSERTUPDATEDELETE事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句时候,就相当于事件发生了,就会自动激发触发器执行相应的操作。当对数据表中的数据执行插入、更新和删除操作,需要自动执行一些数据库逻辑时,可以使用触发器来实现。
2023-06-28 20:07:33
444
1
原创 MySQL数据库基础 16
定义条件是事先定义程序执行过程中可能遇到的问题,处理程序定义了在遇到问题时应当采取的处理方式,并且保证存储过程或函数在遇到警告或错误时能继续执行。这样可以增强存储程序处理问题的能力,避免程序异常停止运行。说明:定义条件和处理程序在存储过程、存储函数中都是支持的。定义条件就是给MySQL中的错误码命名,这有助于存储的程序代码更清晰。它将一个错误名字和指定的错误条件关联起来。这个名字可以随后被用在定义处理程序的语句中。DECLARE 错误名称 CONDITION FOR 错误码(或错误条件)和。
2023-06-26 19:04:49
267
2
原创 MySQL数据库基础 15
含义:存储过程的英文是。它的思想很简单,就是一组经过预先编译的 SQL 语句的封装。执行过程:存储过程预先存储在 MySQL 服务器上,需要执行的时候,客户端只需要向服务器端发出调用存储过程的命令,服务器端就可以把预先存储好的这一系列 SQL 语句全部执行。好处1、简化操作,提高了sql语句的重用性,减少了开发程序员的压力2、减少操作过程中的失误,提高效率3、减少网络传输量(客户端不需要把所有的 SQL 语句通过网络发给服务器)
2023-06-23 12:30:25
315
1
原创 MySQL数据库基础 14
视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。刚才讲的只是视图的一个使用场景,实际上视图还有很多作用。最后,我们总结视图的优点。1. 操作简单。
2023-06-20 08:23:09
207
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人