自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JWT单点登录

JWT单点登录,如何防篡改

2023-04-13 22:34:44 118

原创 对象为null的几种判断方法

还在用“a!=null”吗?优雅判断对象为null的几种方法...

2023-04-11 21:23:52 2839

原创 【无标题】

使用动态代理可以实现对原始对象的透明代理,从而使得代理对象和被代理对象具有相同的接口,对于调用者来说是透明的,同时也可以灵活地切换代理对象,从而实现不同的业务逻辑。动态代理主要通过反射机制来实现,其基本原理是:在运行时创建一个实现了指定接口的代理类对象,然后将请求转发给实际的目标对象,并在转发过程中执行额外的操作。在Java中,动态代理是一种机制,它允许程序在运行时动态地生成代理类,从而可以在不修改源代码的情况下,为原有的类提供额外的功能或者控制访问。好了,今天分享就到这里了,公众号【

2023-03-27 23:36:44 93

原创 【无标题】

Java入门书籍推荐

2023-03-15 23:12:38 99

原创 Git常见命令上篇

git常见命令

2022-10-15 17:09:31 120

原创 Git配置并从Github上克隆项目

Git配置并从Github上克隆项目

2022-10-11 22:06:14 430

原创 java中nextLine()无法读入字符串的问题

文章目录问题描述问题原因解决方法问题描述今天在写算法题时遇到一个问题,首先我调用了nextInt方法读取一个整数,随之又调用了nextLine方法读取一行,发现nextLine方法读取的值为空,代码如下:此处nextInt方法在“一”处调用,nextLine方法在“二”处调用 public static void main(String[] args){ Scanner in=new Scanner(System.in); Stack<Integer&gt

2022-01-11 20:37:22 770

原创 前缀和与差分(一维、二维)

前缀和与方差一维前缀和二维前缀和三维前缀和什么是前缀和?前缀和就是一个数组的某项下标之前(包括此项元素)的所有数组中的元素的和。一维前缀和设sumsumsum为前缀和数组,arrarrarr为原数组,那么就存在:sum[i]=arr[0]+arr[1]+...+arr[i]sum[i]=arr[0]+arr[1]+...+arr[i]sum[i]=arr[0]+arr[1]+...+arr[i]可以得到如下递推式:sum[i]=sum[i−1]+arr[i]sum[i]=sum[i-1]+arr

2021-12-16 23:40:49 79

原创 虚拟机和主机的文件交互

虚拟机和宿主机之间文件交互的四种方式

2021-12-14 01:21:41 2288

原创 剑指offer-剪绳子

剑指offer-剪绳子JZ14 剪绳子JZ83 剪绳子(进阶版)JZ14 剪绳子题目地址描述给你一根长度为 n 的绳子,请把绳子剪成整数长的 m 段( m 、 n 都是整数, n > 1 并且 m > 1 ,m <= n ),每段绳子的长度记为 k[1],…,k[m] 。请问 k[1]k[2]…*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8 时,我们把它剪成长度分别为 2、3、3的三段,此时得到的最大乘积是18。数据范围:2≤n≤60进阶:空间复杂度 O(1) ,时间

2021-12-06 01:01:14 76

原创 剑指offer-调整数组顺序使奇数位于偶数前面

剑指offer-调整数组顺序使奇数位于偶数前面JZ21 调整数组顺序使奇数位于偶数前面(一)JZ81 调整数组顺序使奇数位于偶数前面(二)JZ21 调整数组顺序使奇数位于偶数前面(一)题目地址描述输入一个长度为 n 整数数组,数组里面不含有相同的元素,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。数据范围:0≤n≤5000,数组中每个数的值0≤val≤10000要求:时间复杂度 O(n),空间

2021-12-04 21:08:09 97

原创 2021/11/21日,剑指offer--模拟

剑指offer--模拟JZ29 顺时针打印矩阵JZ61 扑克牌顺子JZ67 把字符串转换成整数(atoi)JZ20 表示数值的字符串JZ29 顺时针打印矩阵题目地址描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵:[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]则依次打印出数字[1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10]数据范围:0 <= mat

2021-11-21 00:06:14 246

原创 2021-11-15剑指offer--位运算

剑指offer--位运算JZ65 不用加减乘除做加法JZ15 二进制中1的个数JZ16 数值的整数次方JZ56 数组中只出现一次的两个数字JZ64 求1+2+3+...+nJZ65 不用加减乘除做加法题目地址描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。数据范围:两个数都满足 0 ≤ n ≤ 1000进阶:空间复杂度 O(1),时间复杂度 O(1)示例1输入:1,2返回值:3示例2输入:0,0返回值:0解题思路对于数A(i)(1或0

2021-11-15 22:04:24 68

原创 2021-11-11剑指offer--排序

剑指offer--排序JZ3 数组中重复的数字JZ51 数组中的逆序对JZ40 最小的K个数JZ41 数据流中的中位数JZ3 数组中重复的数字题目地址描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任一一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1数据范围:0 ≤ n ≤10000进阶:时间复杂度0(n),空

2021-11-11 13:49:42 954

原创 2021-11-08 剑指offer--回溯

剑指offer--回溯JZ12 矩阵中的路径JZ13 机器人的运动范围JZ12 矩阵中的路径题目地址描述请设计一个函数,用来判断在一个n乘m的矩阵中是否存在一条包含某长度为len的字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如[abcesfcsadee]\begin{bmatrix} a & b &c & e\\ s & f &a

2021-11-08 20:47:10 55

原创 2021-11-02 剑指offer--动态规划

剑指offer--动态规划JZ42 连续子数组的最大和JZ69 跳台阶JZ10 斐波那契数列JZ71 跳台阶扩展问题JZ70 矩形覆盖JZ42 连续子数组的最大和题目地址描述输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。数据范围:1 <= n <= 10^5-100 <= a[i] <= 100要求:时间复杂度为 O(n),空间复杂度为 O(n)进阶:时间复杂度为 O(n),空间复杂度为 O(1)示例1

2021-11-05 22:07:03 110

原创 2021-10-29 剑指offer(队列&栈)

剑指offer--队列&栈JZ9 用两个栈实现队列JZ30 包含min函数的栈JZ31 栈的压入、弹出序列JZ9 用两个栈实现队列题目地址描述用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。数据范围:n≤1000要求:存储n个元素的空间复杂度为 O(n) ,插入与删除的时间复杂度都是 O(1)示例1输入:["PSH1","PSH2",

2021-11-02 22:56:24 110

原创 2021-10-27剑指offer---树(部分题解)

剑指offer---树篇JZ8 二叉树的下一个结点JZ79 平衡二叉树JZ36 二叉搜索树与双向链表JZ8 二叉树的下一个结点题目地址描述给定一个二叉树其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的next指针。下图为一棵有9个节点的二叉树。树中从父节点指向子节点的指针用实线表示,从子节点指向父节点的用虚线表示示例:输入:{8,6,10,5,7,9,11},8返回:9解析:这个组装传入的子树根节点,其实就是整颗树,中序遍历{

2021-10-29 12:08:39 92

原创 2021-10-27剑指offer---树(序列化分序列化;对称的二叉树;把二叉树打印成多行)

剑指offer---树篇续JZ37 序列化二叉树JZ78 把二叉树打印成多行JZ28 对称的二叉树JZ37 序列化二叉树题目地址描述请实现两个函数,分别用来序列化和反序列化二叉树,不对序列化之后的字符串进行约束,但要求能够根据序列化之后的字符串重新构造出一棵与原二叉树相同的树。二叉树的序列化(Serialize)是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树等遍历方式来进行修改,序列化的结果是

2021-10-27 13:56:21 72

原创 2021-10-25

剑指offer-树2JZ26 树的子结构JZ32 从上往下打印二叉树JZ33 二叉搜索树的后序遍历序列JZ34 二叉树中和为某一值的路径JZ26 树的子结构题目地址描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)示例1输入:{8,8,#,9,#,2,#,5},{8,9,#,2}返回值:true解题思路遍历树A,每当遍历到的结点的值==树B根节点的值,就从当前相等结点遍历,判断从相等结点开始往后时候相等。如图,遍历到A树的第二层最左边结点

2021-10-25 23:02:15 81

转载 2021-10-24

IDEA开发出现java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener错误解决方法在IDEA开发23体验网的SpringMVC项目时,会出现一些错误,其中比较典型之一的就是调试SpringMvc中,出现:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener错误的解决办法

2021-10-24 15:27:38 136

原创 2021-10-20

剑指offer-树JZ55 二叉树的深度JZ77 按之字形顺序打印二叉树JZ54 二叉搜索树的第k个结点JZ7 重建二叉树JZ55 二叉树的深度题目地址描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。示例1输入:{1,2,3,4,5,#,6,#,#,7}返回值:4方法一 :递归import java.util.*;/**public class TreeNode { int val = 0;

2021-10-21 16:59:31 62

原创 2021-10-18 剑指offer-链表下篇

剑指offer-链表下篇·JZ22 链表中倒数最后K个结点·JZ35 复杂链表的复制·JZ76 删除链表中重复的结点·JZ22 链表中倒数最后K个结点题目地址描述输入一个长度为 n 的链表,设链表中的元素的值为 ai ,输出一个链表,该输出链表包含原链表中从倒数第 k 个结点至尾节点的全部节点。如果该链表长度小于k,请返回一个长度为 0 的链表。数据范围:0 <= n <= 10^50, 0 ≤ n ≤ 10 , 0 <=k <= 10^9要求:空间复杂度 O(n)O(

2021-10-19 20:25:09 50

原创 2021-10-18剑指offer-链表篇

剑指offer-链表上篇· JZ6 从尾到头打印链表· JZ24 反转链表·JZ25 合并两个排序的链表·JZ52 两个链表的第一个公共结点·JZ23 链表中环的入口结点· JZ6 从尾到头打印链表题目地址描述输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0 <= 链表长度 <= 10000示例1输入:{1,2,3}复制返回值:[3,2,1]示例2输入:{67,0,24,

2021-10-18 17:41:59 98

原创 2021-08-12

认识复杂度和简单排序算法常数时间的操作一个操作如果和样本的数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。时间复杂度为一个算法流程中,常数操作数量的一个指标。常用O(读作big O)来表示。在表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下部分如果是f(N),那么时间复杂度为O(f(N))。评价一个算法流程的好坏,先看时间复杂度,然后再分析不同数据样本下的实际运行时间,也就是“常数项时间”。选择排序时间复杂度0(N^2),额外空间复杂度0(1)//升序排列 pu

2021-08-13 15:44:28 44

原创 2021-08-12

JDK,JRE与JVM的区别JDK:Java Development Kit(java开发者工具,面向开发者)JRE:Java Runtime Environment(java运行时环境,面向使用java程序的用户)JVM:Java Virtual Machine(java虚拟机,起到一个翻译官的作用,将字节码文件翻译为当前平台认识的可执行文件的形式)详细关系见下图:java源文件执行流程如下:...

2021-08-12 13:01:02 34

原创 2021-08-12

什么是面向对象?面向对象要对比于面向过程比较,是两种不同的处理问题的角度。面向过程更注重事情的每一个步骤及顺序。面向对象更注重事情有哪些参与者(对象)、及各自需要做什么。以下举一个例子:人把大象装进冰箱:面向过程:函数1:打开冰箱(){人站在冰箱前,打开冰箱,冰箱卡到30度角的时候,冰箱的灯打开了.........}函数2:储存大象(){大象先迈左腿,再迈右退,考虑冰箱能不能装下......}函数3:关闭冰箱(){人站在冰箱前,关闭冰箱,冰箱开到30度角的时候,冰箱的灯关闭了.......

2021-08-12 11:07:50 39

空空如也

空空如也

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

TA关注的人

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