自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring循环依赖以及解决方法

什么是循环依赖?循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。Spring中循环依赖场景有:(1)构造器的循环依赖(2)field属性的循环依赖。1. filed 属性注入的循环依赖代码@Servicepublic class A { @Autowired private B b;}@Servicepublic class B { @Autowired private A

2021-11-29 21:04:21 1723

原创 spring 依赖注入

DI :依赖注入(创建对象,并给属性赋值的意思)DI实现方式有两种1.在spring的配置文件中,使用标签和属性完成,叫做基于xml的DI实现2.2.使用spring中的注解,完成属性赋值,叫做基于注解的DI实现基于xml注入有以下几种方式1.set注入 (设值注入):spring调用类的set方法,在set方法可以完成属性的赋值【80%人使用】。2.构造注入:spring调用类的构造器,创建对象,在构造中赋值。基于注解注入有以下几种方式1 属性注入@Servicepublic clas

2021-11-29 20:27:52 302

原创 Bean生命周期

狭义广义在传统的 Java 应用中,Bean 的生命周期很简单,使用关键字 new 实例化 Bean,当不需要该 Bean 时,由 Java 自动进行垃圾回收。Spring Bean的生命周期只有这四个阶段。1.实例化->Instantiation2.属性赋值->Populate3.初始化->Initialization4.销毁->Destruction实例化 -> 属性赋值 -> 初始化 -> 销毁Spring Bean生命周期执行流程

2021-11-29 20:11:40 3446 2

原创 剑指 Offer 27. 二叉树的镜像

请完成一个函数,输入一个二叉树,该函数输出它的镜像例如输入: 4 / \ 2 7 / \ / \1 3 6 9镜像输出: 4 / \ 7 2 / \ / \9 6 3 1class Solution { public TreeNode mirrorTree(TreeNode root) { Queue<TreeNode> queue=new LinkedList&

2021-11-22 22:33:45 189

原创 剑指 Offer 22. 链表中倒数第k个节点

快慢指针两个指针一个快指针,一个慢指针快指针先走k步然后两个一起走,等于是快指针走了N步,慢指针走了N-k步。输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。class Solution { public ListNode getKthFromEnd(ListNode head, i

2021-11-22 21:43:14 176

原创 剑指 Offer 26. 树的子结构

输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A:3/ 4 5/ 1 2给定的树 B:4/1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。输入:A = [1,2,3], B = [3,1]输出:falseclass Solution { //判断二叉树B是不是二叉树A的子结构 public boolean isSubStruc

2021-11-21 21:02:43 196

原创 剑指 Offer 32 - III. 从上到下打印二叉树 III

请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [20,9], [15,7]]先上代码class Solution { public List<List<Integer>

2021-11-21 18:41:06 50

原创 springboot自动配置原理

**spring’boot自动配置类底层原理**此篇博客主要讲解的我们的applicaiton.yml配置文件怎样关联到我们的自动配置类,同时此篇博客也与上篇博客有关联。好的接下来,我们进入主题。以这个自动配置类讲解首先点进去****1.@Configuration标注它是一个配置类,里面的 proxyBeanMethods 是标注代理bean的方法标记了@Configuration 底层会给配置创建cglib动态代理(作用:防止每次调用本类的Bean方法而重新创建对象)为什么要创建

2021-11-21 15:55:54 3865

原创 springboot自动配置文件读取以及源码分析

今天来讲讲springboot自动配置文件读取以及源码分析springboot启动之后1.首先进入@springbootApplication(如上图)里面的**@EnableAutoConfiguration注解2.点进@EnableAutoConfiguration**里面@Import导入的这个类点进去(这个类的就是将所有的自动配置类导进去容器中)3.进去点进去(点圆圈标注的那个类)这个类实现了变种的ImportSelector类,就是DeferredImportSelector类

2021-11-21 14:24:03 1281

原创 剑指 Offer 50. 第一个只出现一次的字符

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例 1:输入:s = “abaccdeff” 输出:‘b’ 示例 2:输入:s = “” 输出:’ ’class Solution { public char firstUniqChar(String s) { HashMap<Character,Boolean> map=new HashMap<>(); for(int i=0;i<.

2021-11-18 17:59:57 130

原创 剑指 Offer 11. 旋转数组的最小数字

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1] 输出:0采用二分法加暴力法class Solution { public int minArray(int[] numbers) { int i=0,j=numbers

2021-11-18 17:14:08 57

原创 剑指 Offer 04. 二维数组中的查找

线性查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16,22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30] ] 给定 target =

2021-11-17 19:19:26 48

原创 205. 同构字符串

哈希表映射给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。示例 1:输入:s = “egg”, t = “add” 输出:trueclass Solution { public boolean isIsomorphic(String s, String t)

2021-11-17 18:35:28 59

原创 剑指 Offer 53 - II. 0~n-1中缺失的数字

二分。没错,又是个二分,二分杀死我看的题解也懵了好久。但总结出一个东西,如果给的是有序数组,优先考虑二分法.一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1: 输入: [0,1,3]输出: 2具体细节写在代码注释里面吧(好理解)class Solution { public int missingNumber(int[] nums) {

2021-11-17 16:56:58 155

原创 剑指 Offer 53 - I. 在排序数组中查找数字

这道题用二分法解决 不过大部分人(加上我)就算知道了用二分法解题,也还是无从下手吧,因为这个题的只要难点是找重复数字的左右边界,**只要找到了左边界(left)和右边界(right),就可以用right-left-1求出重复数字的长度。**这个应该不难理解,因为数组是有序的,重复数字是连续的,所以重复数字是一段一段的。输入: nums = [5,7,7,8,8,10], target = 8输出: 2先上代码,让大家看一下。class Solution { public int se

2021-11-17 15:44:48 55

原创 剑指 Offer 03. 数组中重复的数字

先言:这道题主要是用了HashSet,存储不重复的值。原谅我一开始根本没想到用HashSet,竟然用HashMap里的value来计算每个值重复的个数。属实是愚昧了。题目:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3class Solution { public in

2021-11-16 21:47:22 47

原创 剑指 Offer 58 - II. 左旋转字符串

这是自己做的方法,很笨,对吧,我也觉得。class Solution { public String reverseLeftWords(String s, int n) { int length=s.length(); char[] str=new char[length]; int j=0; for(int i=0;i<length;i++){ if(i<length-n){

2021-11-16 18:59:11 52

原创 剑指 Offer 05. 替换空格

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”class Solution { public String replaceSpace(String s) { int length=s.length(); char[] str=new char[length*3]; int size=0; for(int i=0;i<length;i++){

2021-11-15 22:45:49 3375

原创 剑指 Offer 35. 复杂链表的复制

自己首先这道题是没有做出来的,是看了题解之后才敲出来的。题解很精妙。反正我开始做这个题没有想出来。用了HashMap,键存放原来链表的结点,值存放克隆后的新结点。先将新旧结点存放在HashMap中,然后在循环里面来连接新结点,同时也连接新结点的random。两者同时连接。时间复杂度为O(N),很巧妙。话不多说,上代码。class Solution { public Node copyRandomList(Node head) { Node cur=head;

2021-11-15 20:00:14 549

原创 springboot自动配置

@SpringBootApplication//标注这个类是一个springboot的应用@Configuration:spring配置类@Component:说明这也是一个spring的组件

2021-11-15 16:25:24 230

原创 剑指 Offer 06. 从尾到头打印链表

题很简单,自己也开始慢慢做题,提示自己的算法能力,自己的算法太弱了。愿与各位大佬一起慢慢进步。输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]解法:用栈做中间桥梁来存储链表数据。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * List

2021-11-14 21:52:50 194

原创 求度数为2的结点个数||交换左右子结点

2021-11-14 15:15:34 440

原创 结构体指针与结构体变量

今天被结构体指针与结构体变量搞懵了typedef struct{int data;struct Lnode *next;}Lnode,*LinkList;Lnode a; 结构体变量,用a.data、a.nextLinkList s;结构体指针,用s->data、s->next

2021-11-14 14:05:41 74

原创 求二叉树的高度(深度)

求二叉树高度int GetHeight( BinTree BT ){ int hl = 0,hr = 0; if(!BT)//为叶子结点 return 0; if(BT)//不为叶子结点 { hl = GetHeight(BT->Left);//递归 hr = GetHeight(BT->Right);//递归 return (hl >= hr ? hl:hr) + 1;//取最大值

2021-11-14 13:43:07 120

原创 反转链表-java

力扣定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL力扣的头节点好像和c不一样,头节点直接存放第一个有效数据/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next

2021-11-13 20:26:11 521

原创 哈夫曼编码与解码(文件编码与解码)

数据结构实验实现哈夫曼树的编码与译码主功能函数//具体细节已经写在注释里面了Java实现package Haffman;import java.io.*;import java.util.*;public class HuffMain { public static void main(String[] args) { String srcFile="D:\\test\\srcfile.txt";//要压缩的文件 Strin.

2021-11-13 16:17:17 1472

原创 二叉树的建立与遍历

先序创建二叉树后续遍历二叉树先序非递归遍历二叉树按层次遍历public class BTree {// 先序创建二叉树 public static<T> Node preCreat(Node node){ Scanner scanner = new Scanner(System.in); System.out.println("请输入结点的值"); String v1=scanner.nextLine();

2021-11-13 16:05:40 207

原创 判断一颗树是否为正则二叉树

正则二叉树:此二叉树不存在度为1的结点 public static int IsTree(Node s){ if(s==null){ return 1; } if(s.getLchild()==null&&s.getRchild()==null){ return 1; } else if(s.getRchild()!=null&&s.getR

2021-11-13 16:01:46 1660

原创 KMP模式匹配算法

KMP 算法是 D.E.Knuth、J,H,Morris 和 V.R.Pratt 三位神人共同提出的,称之为 Knuth-Morria-Pratt 算法,简称 KMP 算法。该算法相对于 Brute-Force(暴力)算法有比较大的改进,主要是消除了主串指针的回溯,从而使算法效率有了某种程度的提高。———有一个模式字符串haystack,设其长度是lenp,以及另一个字符串needle,设其长度lenstr,找出haystack在needle中第一次出现的位置,显然要求lenstr>=lenp。

2021-10-18 18:19:37 75

原创 约瑟夫环(c语言)

转载的#include<stdio.h> #include<malloc.h>typedef struct LNode{ int id,pwd; //id用来存储人的序号,pwd用来存储人的密码 struct LNode *next; //指向下一个的指针 }List;struct LNode *head,*p,*pd; /*创建循环链表函数*/int createLinkList(int n){ int i; he

2021-10-13 16:02:49 100

原创 循环链表删除前驱结点

#include<stdio.h>#include<malloc.h>#include<stdlib.h>typedef struct Node { int data; struct Node* pNext;}NODE, * PNODE;//函数声明PNODE create_list();int length_list(PNODE pHead);void delete_s(PNODE m);void show(PNODE head);

2021-10-13 16:01:10 754

原创 逆置线性表

#include<stdio.h>#include<malloc.h>typedef struct node{ int data;//数据域 struct node* next;//指针域 }LNode, * LinkList;LinkList linklistA() { LinkList A = (LinkList)malloc(sizeof(LNode));//头结点 A->data = -1; A->next = NULL; LNode* s

2021-10-13 15:55:33 65

原创 链表删除并合并

首先,这是一个有点小问题的程序链表是无头结点尾插法但是 不能A表第一个元素开始截取(应该是无头节点的问题),望大佬指出问题.#include<stdio.h>#include<malloc.h>typedef struct node{ int data;//数据域 struct node* next;//指针域 }LNode, * LinkList;LinkList linklistA() { LinkList A; LNode* s,*end=A=NUL

2021-10-13 15:54:31 69

原创 链表合并(c语言)

#include<stdio.h>#include<malloc.h>typedef struct node{ int data;//数据域 struct node* next;//指针域 }LNode, * LinkList;LinkList linklistA() { LinkList A = (LinkList)malloc(sizeof(LNode));//头结点 A->data = -1; A->next = NULL; LNode* s

2021-10-13 15:49:30 125

原创 马踏棋盘(可视化)

#pragma warning(suppress : 4996)#undef UNICODE#undef _UNICODE //取消unicode的定义#include<stdio.h>#include<graphics.h>#include<windows.h>#include<stdlib.h>#define Row 8#define Col 8#define maxStep 64#define White 1#defin..

2021-10-10 16:10:08 201

原创 影院管理系统(C语言程序设计)

**影院管理系统基本运行图**![在这里插入图片描述](https://img-blog.csdnimg.cn/20210304214137245.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MDc5ODc4Mg==,size_16,color_FFFFFF,t_70#pic_center)下面是实现全部功能的函数与解析与

2021-03-06 14:09:43 3143 1

空空如也

空空如也

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

TA关注的人

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