- 博客(58)
- 收藏
- 关注
原创 SpringBoot出现Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded ...
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver class
2023-12-02 12:27:15
119
原创 SpringBoot+JWT实现拦截器的实现方式
由于是第一次接触拦截器,所以对拦截器中的配置也不是很懂,导致在这个过程中踩了很多坑,最让我印象深刻的是,在配置拦截器的时候,由于我在项目中使用到了请求前缀,而我的拦截器又是从其他博主的博客中直接拿来用的,导致只要我一打开@Configuration,就会报404错误(尽管放行了登录请求),其原因是在添加拦截请求时,使用的是,其会让我的请求前缀也会纳入进去,导致一进入登录请求,就会被拦截到,导致请求误拦截。
2023-09-27 13:23:17
568
原创 算法通关村——二分查找在寻找数组峰顶中的应用
最高点如果存在,需要满足arr[i - 1] < arr[i] > arr[i + 1]。mid 在递减阶段的时候,满足条件:arr[mid] < arr[mid -1] && arr[mid] > arr[mid +1]mid在顶峰的时候,满足的条件是:arr[mid] > arr[mid -1] && arr[mid] > arr[mid +1]mid在递增阶段的时候,满足条件:arr[mid] > arr[mid -1]&&arr[mid] < arr[mid +1]
2023-08-11 08:33:49
413
原创 算法通关村——彻底理解二分查找
对于整数溢出的问题,其实就是在二进制中,原本作为正负标志的符号位由0(正数)变为了1(复数),此时我们进行右移操作,就会将符号位给空出来,自动补0上去,也就解决了溢出问题。同时,在正数的计算中,右移一位 (>>1)和 /2 的效果是一样的,所以可以使用移位的方式解决溢出问题,即 (high + low)>>1。字面上的解释是“分而治之”就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题......直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
2023-08-10 12:37:21
189
原创 算法通关村——迭代实现二叉树的前中后序遍历
递归就是每次执行方法调用都会先把当前的局部变量、参数值和返回地址等压入栈中,后面在递归返回的时候,从栈顶弹出上一层的各项参数继续执行,这就是递归为什么能够自动返回并执行上一层的方法的原因。因此,我们也可以模拟一个栈,将结果压入栈中,然后再从栈中弹出节点,就这样进行左右子树的遍历。
2023-08-08 12:55:18
284
原创 递归在树的深度遍历中的运用
对于树这种数据结构,之前一直使用的是层次遍历,也就是;对于树的遍历,还可以进行。而结合递归,树的深度优先搜索便能够很容易让人记住,面试官往往不会考简单的使用递归实现树的深度遍历,因此,除了使用递归方法外,非递归方式实现树的遍历也需要掌握(下期讲解)。
2023-08-08 12:36:46
170
原创 算法通关村——原来如此简单
给定一个二叉树的根节点root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧 所能看到的节点值。将当前层的最后一个节点放入集合中(从右侧看到的节点值就是每一层的最后一个节点值)
2023-08-07 12:25:25
116
原创 二叉树的构建(java基于数组)
二叉树在算法中是经常考察的点,但是要在本地测试的话,就必须自己构建二叉树。在算法题中,一般给我们的都是一个数组,或者是二叉树的形状。因此,需要将数组转换为二叉树,这样才能测试出自己的代码是否符合题意。
2023-08-07 11:58:26
970
3
原创 树的层次遍历
广度优先在面试里出现的频率非常高,整体属于简单题。而广度优先遍历又叫做层次遍历,基本过程如下:层次遍历就是从根节点开始,先访问根节点下面一层全部元素,再访问之后的层次,类似金字塔一样,逐层访问。我们可以看到上面例子就是从左到右一层一层遍历二叉树,先访问3,之后访问1的左右孩子9和10,之后分别访问9和20的左右孩子[4,5]和[6,7] ,最后得到结果[3,9,20,8,13,15,7]这里需要关注的问题是:将遍历过的元素的左右孩子保存起来。
2023-08-05 13:15:38
574
原创 理解树的结构
树是一个有n个有限节点组成的一个具有层次关系的集合。每个节点有0个或多个子节点,没有父节点的节点称为根节点(一棵树有且只有一个)。树的种类比较多,最常见的就是二叉树了。int val;解释:这里本质上就两个引用,分别指向两个位置,为了便于理解,分别命名为左、右孩子int val;
2023-08-04 09:31:03
120
原创 算法通过村——Hash和队列问题解析
Hash,不管是算法,还是在工程中都会大量使用。很多复杂的算法问题都用Hash能够轻松解决,也正是如此,在算法例就显得没什么思维含量,所以Hash是应用里的扛把子,但在算法里就是备胎的角色,只要有其他方式,一般就不会考虑队列了。这也是面试算法和应用算法的一个区别。
2023-08-03 10:00:32
399
原创 算法通关村第三关——双指针的妙用
所谓的双指针其实就是两个变量。双指针思想简单好用,在处理数组、字符串等场景下很常见。看个例子,从下面序列中删除重复元素[1,2,2,2,3,3,3,5,5,7,8],重复元素只保留一个。删除之后的结果应该为[1,2,3,5,7,8]。我们可以在删除第一个2时将将其后面的元素整体向前移动一次,删除第二个2时再将其后的元素整体向前移动一次,处理后面的3和5都一样的情况,这就导致我们需要执行5次大量移动才能完成,效率太低。如果使用双指针可以方便的解决这个问题,如图:首先,定义两个指针slow、fast。
2023-08-01 09:45:50
138
原创 算法通关村第二关——链表加法的问题解析
两者的区别是尾插法的顺序与原始链表是一致的,而头插法与原始链表是逆序的,所以上面最后步如果不想进行反转,可以将新结点以头插法。先将两个链表的元素分别压栈,然后再一起出栈,将两个结果分别计算。之后对计算的结果取模,模数保存到新的链表中,进位保存到下一轮,完成之后再进行一次反转就行了。* 给你两个非空链表来表示两个非负整数,数字最高位位于链表的开始位置。输入:6 --> 1 -->7 和 2 --> 9 -->5。先将两个链表分别反转,最后计算完之后再将结果反转,一共有三次反转操作。
2023-07-29 09:58:30
167
原创 算法通关村第一关——链表经典问题之判断是否有环
判断是否有环,最容易的是使用哈希,遍历的时候将元素放入到set(或者map)中,如果有环,就一定会发生哈希碰撞,这个碰撞的位置就是环入口的位置。* 输入:head=[3,2,0,-4] pos=1。* 解释:链表中有一个环,其尾部连接到第二个节点。给定一个链表,判断链表中是否有环。
2023-07-27 10:33:57
167
原创 算法通过村第一关——链表青铜挑战笔记
在Java中,单链表是由一个个Node节点连接起来的。Node节点是一个类,类中存放了数据属性(data)和下一个节点属性(Node),通常还会有对这两个属性的初始化的构造方法(主要是针对数据属性的初始化),当然,为了保证数据的安全性,会采用面向对象的封装性对属性使用private权限修饰,对外提供公有的get和set方法对这两个属性进行访问(如果只是测试,不考虑安全性的话,也可以将这两个属性设置为公有的,在外部直接对属性进行操作)。当遍历完所有元素后,所有的节点便形成了一个单链表。以下是节点的代码构造。
2023-07-16 17:08:12
558
3
JavaSE使用数组模拟商城项目
2023-01-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人