![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 68
南一道街丶
在校大学生一枚,现主要研究Golang,平时会不定期分享Golang知识
展开
-
广度优先搜索(BFS)
BFS问题简介BFS,英文全称是 Breadth First Search。 BFS并不使用经验法则算法。从算法的观点,所有因为展开节点而得到的子节点都会被加进一个先进先出的队列中。其邻居节点尚未被检验过的节点会被放置在一个被称为 open 的容器中(例如队列或是链表),而被检验过的节点则被放置在被称为 closed 的容器中。(open-closed表)我的理解最早我学广度优先遍历是在二叉树里面的 层序遍历, 广度优先搜索的做法是1.首先创建一个队列(queue),2.把根节点的存入队原创 2022-04-03 17:22:41 · 1568 阅读 · 0 评论 -
二叉树的层序遍历(BFS)
文章目录二叉树的层序遍历(bfs)思想:BFS:102.二叉树层序遍历题目思路103.二叉树的锯齿形层序遍历题目199.二叉树的右视图题目:代码二叉树的层序遍历(bfs)思想:二叉树的层序遍历主要是运用bfs的思想,进行一层一层的遍历BFS:创建队列Queue,然后从当前一层的节点进行取值操作,然后遍历下一层的节点,如此反复进行102.二叉树层序遍历题目思路class Solution {public List<List<Integer>> levelOrde原创 2022-03-29 17:55:37 · 5893 阅读 · 0 评论 -
回溯解决子集,组合,全排列问题
回溯框架思想回溯算法是类似于枚举的搜索过程,主要是在搜索过程中寻找问题的解,当79.子集题目思路:这是一个子集划分问题,我们每次添加一个数字形成组合即可Java版本class Solution { public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> res = new ArrayList<>(); res.add(ne原创 2022-03-14 09:25:22 · 284 阅读 · 1 评论 -
链表的创建以及基础增删改查操作
文章目录Java版本链表创建增加操作展示操作修改操作删除操作总体Go版本Java版本链表创建class ListNode{ int value; String name; ListNode next; public ListNode(int value,String name){ this.value = value; this.name = name; } @Override public String toS原创 2022-02-19 20:04:54 · 348 阅读 · 0 评论 -
MySQL进阶复习
事务MyISAM和InnoDB区别1.是否支持行级锁MyISAM只有表级锁,InnoDB有行级锁和表级锁MyISAM一锁就锁住了整个表,InnoDB并发性能更好2.是否支持事务MyISAM不支持InnoDB支持,有commit和rollback的功能3.是否支持外键MyISAM不支持InnoDB支持MySQL InnoDB 引擎使用 redo log(重做日志) 保证事务的持久性,使用 undo log(回滚日志) 来保证事务的原子性。MySQL InnoDB 引擎通过 锁机制、M原创 2022-02-13 19:42:21 · 684 阅读 · 0 评论 -
Java基础总结
1.面向过程和面向对象面向过程:性能比面向对象高,没有面向对象容易维护、复用、拓展面向对象:性能比面向过程低,易于维护,复用,拓展ps:面向过程也需要分配内存,Java性能差的原因是Java是半编译语言,最终的执行代码并不是可以直接被CPU使用的二进制机械码2.Java特点简单易学面向对象平台无关性可靠性安全性支持多线程(C++没有多线程,需要调用操作系统的多线程设计)支持网络编程编译和解释并存3.JVM 、JDK 、JDRJVM运行Java字节码的虚拟机字节码JVM可原创 2022-02-07 08:15:37 · 263 阅读 · 0 评论 -
剑指OfferII 007 数组中和为0的三个数
文章目录Offer7 数组中和为0的三个数题目:我的思路:代码:双指针思路:代码:优化思路:代码:ps:Offer7 数组中和为0的三个数题目:我的思路:暴力破解,三重for循环遍历,然后map去重代码:class Solution { HashMap<Integer, List<Integer>> map = new HashMap<>(); public List<List<Integer>> threeSu原创 2022-01-12 22:26:44 · 158 阅读 · 0 评论 -
动态规划—路径下降和
题目思路第一步,首先分析问题,我们如果要找到路径跑到最后一行的最优状态,我们得知道他先前的状态dp[i-1],通过此题我们得知dp(matrix,i,j)是dp(matrix,i-1,j)和dp(matrix,i-1,j-1)和dp(matrix,i,j+1)三种状态取最小值过来的然后我们就取得了最后一行每一个空的最小值,最后我们只需遍历比较取最小值即可代码package LeetCode.labuladong.Dynamic;import java.util.Arrays;/**原创 2022-01-09 21:27:08 · 294 阅读 · 0 评论 -
单链表的解题思路
文章目录六种单链表的解题思想合并两个有序链表题目:解题思路:代码如下:单链表的倒数第 k 个节点题目:解题思路:代码如下:链表的中间节点题目:解题思路:代码如下:判断链表是否包括环题目:解题思路:代码如下:环形链表 II题目:解题思路:代码如下:判断两个链表是否相交题目:解题思路:代码如下:六种单链表的解题思想合并两个有序链表题目:解题思路:我们想让两个有序链表合并并且合并之后的链表仍为有序链表,就需要我们在合并的时候进行排序,首先创建一个临时结点dummy为-1,创建一个临时节点p为dummy原创 2021-12-16 15:32:30 · 1155 阅读 · 0 评论 -
AuthenticationManager
1.了解1.1ProviderManagerProviderManager管理了一个AuthenticationProvider列表,每个AuthenticationProvider都是一个认证器ProviderManager 相当于代理了多个 AuthenticationProvider,他们的关系如下图:1.2AuthenticationProviderpublic interface AuthenticationProvider { Authentication authentic原创 2021-12-12 19:20:10 · 8672 阅读 · 1 评论 -
不同的二叉搜索树
题目如下:第一种思路:用for循环遍历左右子树递归的结果之和为什么这样说呢,因为如果你设定中间的2为根的话,那么当前的不同二叉搜索树的结果就是根的左边的排列个数乘根的右边的排列个数,如果取1为中间值也是如此,所以就需要我们使用for循环遍历i(i为1到n)为根的所有情况,计算他们的情况之和代码如下:int numTrees(int n) { // 计算闭区间 [1, n] 组成的 BST 个数 return count(1, n);}/* 计算闭区间 [lo, hi] 组成原创 2021-12-03 15:40:35 · 560 阅读 · 0 评论 -
关于二叉搜索树的增,删,校验
二叉搜索树定义:对于一个根,他的左子树的左子节点的值都小于他的根节点的值,他的右子树的右子节点的值都大于他的根节点的值如图:二叉搜索树(BST)校验错误情况:下面这种情况是不正确的,因为要保证root的左子节点和root的右子结点分别都比root小和大boolean isValidBST(TreeNode root) { if (root == null) return true; if (root.left != null && root.val <=原创 2021-11-28 19:44:31 · 247 阅读 · 0 评论 -
力扣热题TOP100——3.求无重复字符最长子串
题目解题思路这个题主要是要找到字符串的子串不重复的最长值,而不是子序列,如果是子序列就直接找所有不一样的值就可以了,但是子串必须是相邻且不相同的,我首先想到的就是暴力破解,其次就是学习到了滑动窗口策略暴力破解暴力破解的思想是做一次双for循环,其中i表示子串的最左边,j表示子串的最右边(在子串满足不重复的前提下)package LeetCode;import java.util.HashSet;import java.util.Scanner;public class compete.原创 2021-11-04 17:46:11 · 271 阅读 · 0 评论 -
数据结构与算法之查找(Java版)
顺序查找代码实现:public class SeqSearch { public static void main(String[] args) { int[] arr ={1,9,11,-1,34,89}; int index = seqSearch(arr, 11); if (index == -1){ System.out.println("没有找到"); }else { Sys原创 2021-10-10 20:13:53 · 140 阅读 · 0 评论 -
数据结构与算法之排序(Java版)
数据结构与算法之排序(Java版)原创 2021-10-10 17:31:36 · 211 阅读 · 0 评论 -
数据结构与算法之递归(Java版)
递归迷宮问题思路分析:递归分四个方向寻找,有路就返回true,没路就返回false代码实现:方法: public static boolean selectWay(int[][] map, int i, int j) { if (map[6][5] == 2) { return true; } else { if (map[i][j] == 0) { //如果这个点没走过,我们标明原创 2021-10-10 17:27:21 · 62 阅读 · 0 评论 -
数据结构与算法之栈(Java版本)
栈实现思路:1.使用数组来模拟栈2.定义一个top来表示栈顶,代表-13.入栈操作,当有数据的时候,top++, stack[top] = data;4.出栈操作int value = stack[top];top --;return value;代码实现:定义类//定义一个类表示栈class ArrayStack { private int maxSize; //栈的大小 private int[] stack; //数组来模拟栈 private原创 2021-10-02 16:31:47 · 104 阅读 · 0 评论 -
SpringSecurity登录流程
SpringSecurity登录流程1.无处不在的Authentication实现类中,我们最常用的是UsernamePasswordAuthenticationToken2.登录流程Spring Security中,认证和授权的校验都是在一系列过滤器链完成的,和认证相关的过滤器就是UsernamePasswordAuthenticationFilter public Authentication attemptAuthentication(HttpServletRequest reque原创 2021-09-27 21:06:13 · 4119 阅读 · 1 评论 -
@Target,@Rentention,@Inherited,@Document等注解的作用
由来今天我在学习小组的框架,正好学习到了注解,那我就进而想知道每个注解都是啥意思,尤其是每个注解里面的前半部分都有几个固定注解,接下来咱们一起研究一下吧@Target:注解作用的目标@Target(ElementType.TYPE) ——接口,类,枚举,注解@Target(ElementType.FIELD)——字段,枚举常量@Target(ElementType.METHOD)——方法@Target(ElementType.PARAMETER)——方法参数@Target(Elemen原创 2021-09-27 20:53:48 · 388 阅读 · 0 评论 -
Redis学习总结(二)
文章目录三种特殊数据类型geospatial(地理位置)hyperloglogsbitmaps事务Redis事务本质:redis事务流程:Redis乐观锁测试多线程修改值Jedis1.配置依赖2.编码测试常用APISpringBoot整合Redis.confRedis持久化RDBAOF(Append Only File)Redis发布订阅Redis主从复制集群的概念概念环境配置一主二从(master or slave)哨兵模式(自动选举老大的模式)Redis缓存穿透和雪崩缓存穿透布隆过滤器缓存空对象缓存击穿原创 2021-09-17 14:48:18 · 145 阅读 · 0 评论 -
JWT学习
4.JWT组成1.组成1.标头(Header)2.载荷(PayLoad)3.签名(Signature)2.Header标头通常由两部分组成:令牌类型(JWT)以及所用签名算法,他会用Base64编码JWT第一部分3.PageLoad-令牌的第二部分,声明是有关实体和其他数据的声明。同样,他会使用Base64编码组成JWT的第二部分4.JWT实战package com.example.demo;import com.auth0.jwt.JWT;import com.au...原创 2021-09-12 19:55:35 · 150 阅读 · 0 评论 -
Java反射
文章目录反射1.Class类**获取Class实例**JVM动态加载小结2.访问字段获取Class返回信息Field对象获取字段值设置字段值3.调用方法**调用substring方法**调用静态方法多态小结4.调用构造方法小结5.获取继承关系获取父类Class获取interface小结6.动态代理静态代理:动态代理反射出了int这些基础类型外,Java其他类型都是ClassStringObjectRunnableclass(包括interface)的本质是数据类型(Type)无继承关系的数据原创 2021-08-14 14:36:14 · 136 阅读 · 0 评论