自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分析记忆化搜索和回溯的代码实现特点

下面是最长递增子序列的记忆化搜索代码实现。

2023-12-13 19:34:25 122

原创 LeetCode 300 最长递增子序列

2、本身我需要的是一法万通(通过学习回溯+记忆化搜索是否可以去去除动态规划的学习),但是在这道题目的过程中,我发现动态规划会比回溯+记忆化搜索的处理方便很多;,然后后续的动态规划题目,只要理解了记忆搜索的用处,直接使用动态规划作答即可。对于memo数组(记忆搜索)在回溯中的使用,我目前感觉到了阻碍;可能这也是为什么需要将回溯和动态规划分别作为不同算法的原因。华为二面出的这个题,非常经典的动态规划题目....还是刷题太少了,不然的话应该是能刷到的。我们通过减枝可以去除不必要的搜索。(这句话仍然是适用的)

2023-12-07 21:56:40 169

原创 LeetCode 739 每日温度(单调栈的初步了解)

LinkedList 实现了 Deque 接口,可作为队列使用。并且通过使用单调栈可以使得时间复杂度从O(LeetCode 739 每日温度。2、单调栈用在这里非常巧妙,通过。

2023-10-13 17:24:50 252

原创 MySQL刷题的一些注意事项

但是GROUP BY column1_name and column2_name是不可行的。我们是不能直接使用WHERE 20 < age < 25的方式。语句如果需要挑选大于20小于25岁的用户。(column_name),类似的还有。语句如果有两个及以上的分组,都是需要加括号处理的。

2023-10-13 14:50:18 229

原创 LeetCode 88 合并两个有序数组

3、这道题其实是插入排序的方法,当插入中间和尾部其实是不一样的处理,需要分情况。break和break one还有return的区别可以参考这篇。1、确定是否需要break以及何时break;2、对于m=0的特殊情况需要特殊处理。

2023-10-12 13:07:25 230

原创 LeetCode 26 删除有序数组中的重复项

其实两个不同的指针就可以得到两个不同的数组,只是原数组无法复原,并且要在彼此不相互干扰的情况下,才能正确用双指针解答。1、通过重新定义一个新的数组,然后将其重新赋值给nums数组,输出此时的index,该方法需要额外的内存。2、或者是使用双指针可以节省额外的内存空间。

2023-10-10 21:06:05 158

原创 LeetCode 383 赎金信

3、containsKey()用于检查HashMap中是否有该Key值,此时就可以直接使用get()方法,分成两种情况,当没有Key值时就说明false,当有Key值时就将Value值减一。2、getOrDefault()的get用于更新value值,而Default用于不存在该Key值时,获取一个初始的默认值,也就是0,加1后表示第一次出现。1、put() 由于没有更新的方法,因此更新只能再次put相同的Key值,并且配合使用getOrDefault()每次更新value值。

2023-10-06 23:38:57 306

原创 LeetCode 202 快乐数

然后说回方法本身,我的方法是循环到10000次如果得不到1就自动停止递归,并且用了比较占内存空间的字符串类型。今天再次做到需要int转化成String,从而方便运算的题目。(当然还可以直接使用int运算也是没问题的)再次出现了我容易弄混淆的问题,Integer.valueOf和ASCII码转化的差异?其实之前我以及有记录过该问题,详见我的博客。

2023-10-05 18:05:31 241

原创 LeetCode 54 螺旋矩阵

我其实不止一次做过这道题,巧的是前面几次做完就忘记了..其实编程题真的应该自己去做,而不是看答案,那样太容易遗忘。我们可以以1、2为块,然后以3、4为块,5、6为块,7,8为块,9为块。螺旋矩阵重在矩阵的切割,你是如何给矩阵分块以及上下左右的索引的增减。第一阶段从左到右,结束后对上索引加一(从左到右是i++)第二阶段从上到下,结束后对右索引减一(从上到下是i++)第三阶段从右到左,结束后对下索引减一(从右到左是i--)第四阶段从下到上,结束后对左索引加一(从下到上是i--)其实一个非常巧合的规律是,

2023-10-04 18:50:02 149 1

原创 Remove和RemoveLast用法

3、即便你使用了ArrayList的数据结构,并不代表你在每次在result添加新的List子表,不用重新new一个ArrayList了,因为。刷代码随想录回溯算法的时候,经常会想到为什么temp都是用LinkedList的数据结构?经过实践证明,ArrayList是可行的。为什么我不能用ArrayList呢?

2023-10-04 01:48:47 409

原创 链表的注意事项

可能在单向链表中其实是可以两个节点指向同一个节点的,意思就是每个节点的next是唯一的,但是他的前置节点不一定是唯一的)他们是不一样的,前者是将head赋给sudo.next,而后者是将sudo.next赋给head。假设我需要删除的是头节点,n=链表长度,在low.next=low.next.next;(新建一个ListNode,会创建一个值为0的头节点,然后指向空)其实不止一次接触到这个虚拟头节点,但是每次都容易忘记它的作用。首先a=b,那么b必须存在。

2023-10-02 01:51:09 306

原创 反转问题(字符串和链表)

(因为反转必须有左右两个对象),第一次反转时,fast的左对象为null,右对象为原本的下一个节点,从指向右对象,变成了指向左对象,然后通过temp暂存fast原本的下一个节点的位置。(用fast和low命名是为了明确该方法用的也是双指针法,用cur和pre也是可以的)然后再使用倒序,即可获得一个新的StringBuilde,通过toString可以转化成目标字符串。1、Leetcode 151 反转字符串中的单词(较难的字符串反转问题)最近刷代码随想录的双指针法时,遇到了不少的反转问题。

2023-09-23 16:15:49 103

原创 ArrayList和LinkedList

首先我们从ArrayList的定义来看,ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。如果我需要使用一个新的 NewServiceImpl(),我只需要换成对应的实现类即可。最近在刷回溯算法时,遇见了List<Integer> A = new ArrayList<>();下图出自菜鸟教程runoob。1.提高了代码的可维护性。2.提高了代码的扩展性。

2023-09-18 12:33:14 639

原创 Integer.valueOf()用于字符和字符串的区别

num=50,这是为什么呢,因为digits.charAt(deepfloor)='2',对应的ASCII值为50...num=2,才能得到正确结果,因为digits.substring(deepfloor,deepfloor+1)="2"当temp拼接字符串"A"之后, 测试System.out.println(temp.charAt(0));首先当temp为""时, 测试System.out.println(temp.charAt(0));和拼接字符串"A"之后temp的第0位字符。

2023-09-17 22:28:51 166

原创 LeetCode 78 子集

2、似乎使用new ArrayList<>(LinkedList)可以将链表转成一个新的线性表(这是因为ArrayList是直接指向地址,后续的操作也会影响到前面的结果)同理在该题中,利用new ArrayList<>(HashSet)也可以将哈希set转成一个新的线性表(该题更多的是注重形式上的转化)数组是在回溯时index=i+1,而字符串是在循环时便加1,然后回溯使用的index=i。(子集使用的是i+1)1、在使用回溯算法时,循环中,对于数组和字符串的处理是不一样的。

2023-09-16 15:09:27 186

原创 比较字符串和字符

2、通过str1.compareTo(str2),但是这种比较字符串的方法更适合判断两个字符串是否一样,不适用于范围比较。1、通过Integer.valueOf()转化成数字。Leetcode 93(复原ip地址)

2023-09-16 13:50:54 163

原创 Father and Child类的关系

f是Father类是无容置疑的,但是当他new了一个Child类时,他可以调用Child类中重写的方法,也就是f处于一个叠加状态,他比单纯的Father类。Father类和Child类有交集,交集就是重写的部分,Father类但new的Child类就是大部分的父类加上小部分的Child的集合。2、考察的是多态:多态是指可以将子类的对象引用赋给父类的引用变量,并且可以使用这个父类引用来调用子类中重写的方法。Father类和Child类还有Father类但new的Child类的关系应该是这样的。

2023-09-11 22:27:39 247

原创 启动Spring Boot突然报错

似乎是虚拟机中的iginx启动错误,导致我没办法正常的启动sellApplication。

2023-09-01 16:01:26 122

原创 Postman的参数输入问题...

其实是有差别的,前者有空格,当你需要执行查找操作时,输入Mysql的如果是前者,就没办法查找到该数据。因为Mysql中也是有空格的占用。对于Key和Value的输入,如果使用Bulk Edit,容易输入。

2023-08-31 13:47:33 78

原创 Springboot解决Failed to load ApplicationContext

2、新的发现是:查看到Caused by一行中,BeanCreationException: Error creating bean with name 'orderMasterDao',说明这个bean创建的有问题。所以以是整体的jar包的问题,所以反复将仓库文件删除,然后再重新引入,然后还是不行。同时还找了非常多的Failed to load ApplicationContext解决办法,但是感觉并不通用(可能是这个大问题下面有非常多的不同的问题),并没有解决。,应该是注释的import。

2023-08-23 16:22:10 1594

原创 Controller层无法显示部分数据

2、查看productInfoVO中的定义,特别是在引入Lombok后,使用@Data即可实现get和set方法,那么可能会出现忘记使用的情况。所以也是需要productInfoVO的set方法和productInfo的get方法的。1、首先需要验证Controller层的逻辑是否正确,是否能正确显示出数据。我出现的问题是productInfoVO无法正确显示。上述代码的等效替换为。

2023-08-23 12:13:46 127

原创 记录Win10下127.0.0.1的8080端口无法访问问题

1、网上有些win7系统下的防火墙“例外”标签栏在win10早就不知所踪,而新版的一些方法通过控制面板搜索防火墙去修改高级设置中的入站规则(其实只需要修改8080in),出站规则是修改你访问的出站端口,我们只需要打开本地的8080端口,修改好入站规则即可。2、关闭防火墙(如果你可以直接访问端口就不需要了),因为防火墙的一些设置可能会导致就算修改入站规则也没办法访问端口(譬如组织所有传入连接,包括位于允许应用列表中的应用)3、到了这一步,也就是我所犯的错误,我没有打开SpringBoot程序!

2023-08-22 20:28:58 8352

原创 idea类文件版本问题

错误的类文件: /C:/Users/hp-pc/.m2/repository/org/springframework/spring-test/6.0.11/spring-test-6.0.11.jar!2、检查发现是pom.xml莫名其妙多了一些依赖引入,大概是有时候引入一些类时,idea默认下载了新版的依赖项。问题解决,注意pom.xml有时候会引入一些新版本依赖,特别是当你使用一些旧版本的依赖时。3、并且检查本地仓库发现确实有不只一个版本的依赖,将新版本删除。1、不知道为什么突然版本报错。

2023-08-21 21:31:35 388

原创 Idea2023创建SpringBoot

网上有教程说需要修改镜像地址,其实大多数仍然使用的阿里云,然后由于年代久远,还是使用的http,但是现在已经不支持。原因可能是在仓库中已经有过该插件spring-boot-maven-plugin。1、经过查询本地仓库发现并没有下载spring-boot-maven-plugin,因此修改版本号的方法是建立在没有Resoving Maven dependencies情况下。原本是搜索不到spring-boot-maven-plugin的。看到了网上很多所说的都是要修改版本号,所以被带偏了。

2023-08-18 19:07:15 347

原创 spring initializr导入idea

解决办法1:重新下载spring initializr压缩包,选择java 8以及spring boot 2.7.11。解决办法2:下载jdk 1.17,然后布置环境变量,再在此页面将目标字节码和项目字节码版本改成一致。如果使用java 8就得用spring boot 3.0以下版本,例如2.7.11。如果使用java 17就得使用spring boot 3.0及以上版本。如果下载了java 17和spring boot 3.0以上版本。java 8对应的是jdk 1.8。但是系统只有jdk 1.8。

2023-05-05 12:22:52 1835

原创 2023.1版本的idea创建maven

猜测setting.xml虽然将默认路径给注释掉,但是仍然跟我设置的本地仓库localRepository起了冲突。直到把settings.xml里面的自己设置的本地仓库localRepository给删除。1、如何创建maven-archetype-quickstart框架。我们要选择Maven Archetype,并且在高级设置中设置包名。对比网上多数解答都是之前版本的界面,所以没有参考价值。2、创建maven项目时,遇见了目录下无src的情况。多次修改maven主路径以及配置文件、本地仓库...

2023-05-04 21:07:22 6501 3

原创 解决命令行构建maven项目报错

参考链接:https://blog.csdn.net/weixin_40992982/article/details/104087472。只用一个mirror,也可以(我的maven项目只使用了第一个mirror)该问题由于网络问题导致,已有的镜像仓库。将setting.xml改成如下,即可。无法访问或者网速过慢。

2023-05-04 18:16:30 1523

原创 DAO、JDBC、Servlet

在这个过程中,DAO 层扮演了数据访问的角色,通过调用 JDBC 层提供的方法来实现具体的数据操作。JDBC 层使用底层的网络协议与数据库进行交互,执行相应的 SQL 语句,并将执行结果封装为 Java 对象返回给 DAO 层。4. DAO 层方法中调用 JDBC 层提供的底层数据访问方法,使用 SQL 语句将对应的数据删除;9. 控制器接收到 DAO 层返回的信息后,将其转换为前端可以展示的信息,例如弹出提示框等;8. DAO 层根据返回结果进行相应的业务逻辑处理,例如返回删除成功或删除失败等信息;

2023-04-27 19:28:59 125

原创 `QueryRunner`与`TxQueryRunner`

除了`QueryRunner`、`TxQueryRunner`等JDBC工具类之外,Apache Commons DbUtils还提供了其他一些有用的类,如`ResultSetHandler`、`DbUtils`、`BasicRowProcessor`等。通过使用该工具包,开发者可以更加方便地进行数据库操作,减少了JDBC代码的重复和冗余,提高了开发效率。需要注意的是,尽管这些JDBC工具类和框架可以自动管理数据库连接和驱动程序加载,但在使用它们时,,以便建立与数据库的连接。

2023-04-27 15:55:13 76

原创 Class.forName()

如果数据库类型是MySQL,则driverClassName和databaseUrl分别被赋值为"com.mysql.jdbc.Driver"和"jdbc:mysql://localhost:3306/mydatabase",如果数据库类型是Oracle,则driverClassName和databaseUrl分别被赋值为"oracle.jdbc.driver.OracleDriver"和"jdbc:oracle:thin:@localhost:1521:orcl"。2、加载类可以是一个变量,动态加载。

2023-04-27 12:46:32 461

原创 navicat for mysql

1、解决了新版navicat15 for mysql的安装激活问题,本来以为是旧版本不支持sql编辑器新建表的这些操作,结果发现旧版还是有sql编辑器的。2、找了半天他的sql编辑器,包括问了chatGPT,结果并没有解决问题。3、如果没有出来新建表(或者表已经存在),再刷新一下数据库或者连接。(1)右键“数据库”,点击命令列界面,即可进入sql编辑器。(2)右键“数据库”,点击新建查询,也可进入sql编辑器。

2023-04-26 21:06:04 176

原创 LoginServlet注意事项

在Servlet中,通过`HttpServletRequest`对象的`getSession()`方法获取`HttpSession`对象,并可以使用`setAttribute()`和`getAttribute()`方法在`HttpSession`中保存和获取数据。它们之间的关系是,可以通过`HttpServletRequest`对象获取`HttpSession`对象,并通过`HttpServletResponse`对象返回响应信息,包括将`HttpSession`中保存的数据返回给客户端。

2023-04-24 12:26:52 64

原创 解决映射路径出错404问题

网上有很多关于映射路径不对的方法,检查form表单提交,检查web.xml文件。自己有两个web文件夹,两个WEB-INF,并且还有两个web-xml。不知道为什么会出现这种情况,解决办法就是将web模块部署描述符删掉一个。这样的方法,要注意login应该是form表单中的action提交。建议把第一个删掉...并且把jsp文件放在第一个web中。对于映射访问路径,除了在web-xml注明,昨天试了很久,一度以为自己的idea有问题。个人觉得webServlet更简洁。

2023-04-23 12:53:03 305

原创 静态方法和非静态方法的调用

静态方法是属于类的,所以可以直接通过类名调用同一类中的其他静态方法,因此直接写`myStaticMethod2();`this`是当前对象的引用,可以省略不写,但使用`this`可以更加清晰地表达出当前方法是在操作当前对象的属性或方法。当你在同一个类的动态方法中调用静态方法时,Java虚拟机会首先在当前类中查找这个静态方法,然后进行调用。1.mian属于静态方法,所以我们先来研究静态方法如何使用静态方法(指同一类中的静态方法)4.怎么在动态方法中使用动态方法(指同一类中的动态方法)

2023-04-22 19:19:28 1357

原创 IDEA小白创建servlet

4、地址的前一部分为项目根目录\javaweb1,后一部分是\helloServlet(helloServlet的路径),中间没有其余的子目录,因为定义路径时,默认前面是根目录。但是应用程序上下文,必须叫做项目名(本文路径为C:\Users\18473\IdeaProjects\javaweb1)/helloServlet就是名为helloServlet(HelloServlet类)的路径(网址模型)比如class为HelloServlet,但是我的名字可以改成helloServlet。

2023-04-20 18:54:50 424

原创 寒假作业(蓝桥杯)

以及回溯的for循环全排列写的更像是组合。

2023-04-06 13:07:10 58

原创 关于long和int,关于KB和Kb

小蓝发现,他将 11 至 10000000071000000007 之间的不同的数与 20212021 相乘后再求除以 10000000071000000007 的余数,会得到不同的数。如果存在,请在答案中提交这个数;小蓝准备用 256MB 的内存空间开一个数组,数组的每个元素都是 32 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB 的空间可以存储多少个 32 位二进制整数?256MB=256*1024*1024B 1Byte=8bit(位)

2023-04-03 23:06:42 121

原创 单词分析蓝桥杯(int转化char)

【代码】单词分析蓝桥杯(int转化char)

2023-04-03 20:45:22 56

原创 leetcode 203移除链表元素

【代码】leetcode 203移除链表元素。

2023-04-03 17:04:38 104

原创 leetcode35:搜索插入位置

1、怎么把搜索和插入分开,在我搜索了所有的数组元素后,开始插入该元素的判断该如何表示。考虑了太多的不一般情况,可能只能刚好跑出给出的用例。2、一些特殊情况需要单独考虑。说实话,不是一个很好的解法。

2023-04-02 19:41:05 70

空空如也

空空如也

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

TA关注的人

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