自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java输入: Scanner用法

产生一个scanner类Scanner scan = new Scanner(System.in)整数读取:int x = scan.nextInt();nextxx:读取空格隔开的数据读取数组:字符串分割,转换成数组形式class Test{ public static void main(String[] arg){ Scanner sc = new Scanner(System.in); String str = sc.nextLine().toString();

2020-06-22 17:54:56 1898

原创 leetcode 124. 二叉树中的最大路径和(巧妙的后序遍历)

题解给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。样例:经过 最长路径是15+20+7=42题解:此题其实有点像动态规划,主要就是从子节点到父节点的一个状态变化记录,而这个变化正好符合后序遍历的规范这里我们需要考虑最大路径和的意义**路径和:**从一个节点到另一个节点的权重之和,途中不一定经过跟节点遍历:一个节点到另一个节点的路径遍历对于树结构来说是无法实现的,因此我们必须从根出发,而左

2020-06-21 23:32:46 334

原创 leetcode 494:目标和(背包)

题解:题意:给定一串数字nums[] 和一个目标值s,在相邻两个数字之间添加+和-号,输出满足nums中的数字进行加减操作之后和为s的方案题解:动态规划,背包问题(最优解不用开二维数组,但是开了更好理解)状态表示dp[i][j]: 表示第i个数字“使用”了之后,截至第i位目标和为j的组合数状态变更:减去当前数字:dp[i][j-nums[i]] += dp[i-1][j]加上当前数字:dp[i][j+nums[i]] += dp[i-1][j]实现,注意,这题j最大值是1

2020-06-17 00:19:17 187

原创 Springboot入门前须知:Spring的完全注解IOC(初学,不含任何原理)

第一步创建一个配置类假如类名为SpringConfig,用@Configuration放在一个类的头上进行标识配置类上再加一个@ComponentScan表示这个类会开启组件扫描,这个注解有多个属性base-package: 表示扫描范围在这个目录下第二步ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class),加载配置类第三步利用配置类对象创建类实例,cont

2020-06-14 22:50:09 210

原创 Spring学习:Bean的生命周期与XML自动装配

Bean是什么?bean是一种规范,bean实例指的是满足这个规范的类对象bean的四大规范所有类成员属性都是private类中必有默认无参构造器类中提供getXxx与setXxx方法,也成为getter和setter实现序列化(serializable)接口,便于从内存到硬盘的持久化。Bean的生命周期执行无参构造函数创造bean实例调用setter,给bean中成员和bean的引用对象赋值在初始化之前调用一个bean后置处理器postProcessBeforeInit

2020-06-14 22:43:33 144

原创 剑指offer19: 正则表达式匹配(序列DP)

题解题意:给定一个正常字符串S以及一个正则字符串P,判断两者是否表示相同的字符串,其中S只包含普通字符,P中可能包含三种类型字符,分别是普通字符, .(匹配任意一个普通字符), *(匹配前面一个字符任意次,包括0次)题解: 分类讨论, 我们利用i, j表示S和P当前位置的字符,假设两者长度分别是n和m若P[j] != . && p[j] != *,那么判断S[0~i]==P[0~j]就转换为S[0~i-1]和P[0~j-1],否则说明直到当前位置的两个字符串是不匹配的若P[j]=

2020-06-13 12:10:39 238

原创 Spring学习:IOC之降低耦合的原因

IOC是什么控制反转,将对象创建交给SpringIOC容器:对象工厂目的:将耦合度尽量降低,当具体类发生改变的时候,只需要修改配置文件,而不是修改对用代码。实现关键原理:XML文件(怎么解析的暂时不用管),工厂模式,反射机制工厂模式将对象创建的过程交由另一个类的getXXX方法来完成,一个简单的例子class UserService{ execute(){ UserDao ud = UserFactory.getDao(); ud.add(); }}class User

2020-06-11 16:52:42 1212

原创 JAVA反射机制:简单解释与小例子

反射机制反射机制的作用在于,利用类编译出来的字节码信息,来动态操作类对象。Class类JAVA之所以能够存在反射机制,是因为实现了Class这个类,这个对象是每一个编译过的类都有的。Class类首先有一个forName(String s)方法,通过传入package.class,也就是对应类的全路径,来获取对应类的Class对象。Class中也有直接的newInstance()方法,故名思意,可以直接创建对应类的对象,但是好像被抛弃了, 不知道什么原因Class可以调用getMehtod

2020-06-11 16:34:22 202

原创 JAVA引用类型:强软弱虚

分类依据根据垃圾回收器的回收情况来分类类型介绍以及用处强引用:普通引用,即Object o = new Object这样的引用的统称,一旦启用垃圾回收器,会对强引用进行可达性分析,只有垃圾对象才会被回收软引用(SoftReference<T>):软引用内部包含一个引用,常用于缓存,淘汰机制有点类似LRU,通过SoftReference<T> m声明的m也是一个强引用,但是m会指向SoftReference中包含的那个软引用,但是强引用指向的是软引用,m可以通过调用get

2020-06-09 12:55:31 264

原创 剑指offer46. 把数字翻译成字符串(斐波那契数列)

题解题意:给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。现在给定一个输入是一个int数字num,编程计算一个数字有多少种不同的翻译方法。输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”题解:这题和斐波那契数列有点类似,为了方便,我们利用num[i]表示第i位数字当nu

2020-06-09 01:09:12 234

原创 Leetcode 990. 等式方程的可满足性(并查集判断是否处于同一连通分量)

题解题意:给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:“a==b” 或 “a!=b”。判断关系数组中的所有字符串是否能够形成一个合理的方程式: 比如,输入["a==b","b==c","a==c"],输出true,输入["a==b","b!=c","a==c"],输出false题解:这题关键在于分开遍历==和!=所对应的方程式,如果一个等式全都是不等式或者等式,那么这个逻辑一定是正确的。因此只需要考虑同时存在

2020-06-08 10:45:55 313

原创 剑指offer 29. 顺时针打印矩阵(模运算模拟转向,思路清晰)

题解题意:给定一个矩阵,要求从外围内内围顺时针打印里面的每一个数据。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]题解:这题我们使用一个指针模拟顺时针的顺序,因此需要注意到什么时候指针要换方向。从左上角开始,顺时针移动的方向有哪些?右 - 下 - 左 - 上,因此可以利用两个数组来表示这几个方向dy[]={1,0,-1,0}, dy[] = {0,1,0,-1},然后移动就是nx = x + dx[x], n

2020-06-05 09:54:50 134

原创 Leetcode 238. 除自身以外数组的乘积(左右扫描)

题解题意:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 res,其中 res[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。输入: [1,2,3,4]输出: [24,12,8,6]题解:想要题目的意思,我们可以考虑对每个数字求它左边和右边的数据的乘积。因此最直观的做法就是利用一个L数组保留第i个数字之前的所有数字的乘积,利用R数组保留第i个数字之后所有数字的乘积,然后再遍历一次,让res[i]=L[i]*R[i]即可实现class

2020-06-04 11:20:41 160

原创 837. 新21点(概率DP)

题解题意:题目是一个摸牌游戏,牌的数字都在某个范围内,规则是玩家一直摸牌,当累计数值比预先给定的阈值大的时候,就停止摸牌,加上最后一个数值之后,如果大于一个目标值那么就算输,否则,就算赢。 现在给定三个数字,N, K, W,N是目标值,W是牌的最大数值,换句话说就是牌堆的数值都在[1,W]范围内,K是给定的阈值,即累计数字大于K的时候停止摸牌,求玩家赢的概率。K<=N<=10000,W<=10000K<=N<=10000, W<=10000K<=N<=10

2020-06-03 12:44:38 458

空空如也

空空如也

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

TA关注的人

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