自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 最详细地解释java的多态性(一)

多态(Polymorphism)是面向对象三大特性之一,指的是同一个行为在不同对象上可以有不同的表现。Java 中的多态体现为:父类引用指向子类对象。调用方法时,实际运行的是子类中重写的方法(如果有)。首先我们举一个代码地例子// 父类引用指向子类对象// 输出结果:Dog barks输出结果为Dog barks这里面蕴含怎么样地逻辑呢。为了回答这个问题,我们还需要引入声明类型以及实际类型,和动态绑定,这三个概念。

2025-04-18 17:11:50 200

原创 详解java数据结构的hash表

如上面的图,我们把节点(也就是key,value)存进了数组里面,并且每个节点会有相应的下标(图中的123456)。那数组只有这么大,肯定有填完的时候呗,这时候就轮到equals函数出场了,当我们往数组里面填写节点时,hash表是什么,归根结底就是有一个数组,数组里面存放了节点,节点包含了Key,value。在HashSet里面,就会覆盖原来的key,其实就是什么都没有变,value不会变。,这时候我们就会使用指针将这个节点链在节点后面,形成链表。里面,就会覆盖原来key对应的value值。

2025-04-16 16:57:09 278

原创 有序数组的平方,leetcode

给你一个按排序的整数数组nums,返回组成的新数组,要求也按排序。平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]

2025-04-12 14:39:59 156

原创 子类继承父类的,变量与方法的重写

我们知道,子类继承父类后,子类会继承父类的可访问变量与方法,那么在子类没有重写方法,和覆盖变量时,我们在子类里面访问变量使用方法调用的谁呢?什么时候访问的就不是父类了?子类实例访问方法或变量时,,行为跟直接用父类没区别。都访问的是子类的成员。下面我们通过代码了解。子类继承了父类,只要。

2025-04-08 22:51:27 128

原创 详细解释JAVA的继承特性

以上的两种构造方法都是等价的,也就是说我们的这些类一般都是隐藏父类的无参构造方法,所以所有的项目都会有一个构造链,子类在使用构造方法创建一个实例的时候,都会先调用父类的无参构造方法,父类又会调用父类的父类的无参构造方法,形成。,在父类的私有变量声明中,我们的子类还是存在了父类的私有变量,我们不能直接访问,可以通过父类定义的get,set方法(方法,不能私有,一旦私有,子类不能使用这个方法)修改和获得变量。当然,我们子类通常不仅仅是为了获得父类的方法变量,更多的是,我们需要添加更多的特性。

2025-04-07 22:45:42 405

原创 使用最小花费爬楼梯

读完题目,我们发现,第一步我们是不需要花费支付费用的。典型的动态规划问题,我们把爬到顶楼分解为许多个小问题,如到第三个台阶需要花多久,无非是从第一个台阶上来,还是从第二个台阶上来。我们定义一个dp数组,记录到第i个台阶最少需要的花费。个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。请你计算并返回达到楼梯顶部的最低花费。

2025-04-07 19:49:50 119

原创 不同路径,leetcode

一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?对于这种机器人,我们可以知道它每次就只有两种操作,联想到二叉树,但是二叉树的时间复杂度太高了,所以我们更加倾向于选择动态规划来解题。

2025-04-07 19:42:43 323

原创 JAVA面向对象的封装性

封装就是把对象的属性(数据)和方法(操作)“包”在一起,并且隐藏内部实现细节,只提供对外访问的接口。对对象进行封装主要有下面四大好处,下面根据代码进行解读数据安全性:防止外部随意修改对象的内部数据统一控制访问方式:通过 getter/setter 控制字段的读取或修改行为降低耦合度:使用者不需要关心内部是怎么实现的,只关心怎么用增强可维护性和扩展性:内部实现改了,不影响外部调用者数据安全性。

2025-04-06 17:00:21 138

原创 爬楼梯,leetcode

观察题目 ,我们知道爬一层,需要1种方法,爬两层有2种方法,那么对于爬到3层来说,无非就是从第一层一下子跑到第三层,和第二层爬到第三层这两种情况。对于这样的爬楼梯 , 典型的可以分解为子问题,考虑动态规划,动态规划最关键的就是状态转移函数。知道上面的方法,我们就可以不断往上爬了,如下面的代码。你有多少种不同的方法可以爬到楼顶呢?

2025-04-05 20:57:31 246

原创 求一个集合里面的所有子集

← 撤销 3 → path = [1, 2] ,这时候使用temp异或 3 ,把3从子集剔除 ,注意这时候 i =1。最终:res = [[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]→ 选择 2 → path = [1, 2] ,使用再temp 异或2 ,得到子集[1,2],的异或和。→ 选择 1 → path = [1] ,这时候记录一个子集,使用temp 异或 1 ,得到1。→ 选择 3 → path = [1, 3]

2025-04-05 20:26:21 513

原创 二分查找及二分查找while条件判断

代码随想录,LeeCode704。

2025-04-01 19:03:03 417

原创 使用归并排序(Merge sort)计算逆序数的数量

在一个数组中,如果i < j且,则称为一个逆序对。逆序数的总数就是数组中所有的逆序对数量。

2025-03-30 23:23:24 491

原创 蓝桥杯,k倍区间问题

题目描述要我们在数列中找连续的子序列,其和是k的倍数。我们可以很容易想到前缀和,来表示一段序列的总和。通常的思路就是遍历获得不同的连续序列(如1,2,3,4,5,6,7),先遍历1用前缀和是sum[1] 然后是1,2 sum[2];再开始遍历2开头 , 2 sum[2]-sum[1] ,2,3 sum[3]-sum[1] ...这样的时间复杂度为o(n的2次方),只可以通过少数例子。

2025-03-29 22:30:16 435

原创 JAVA基本类型变量与引用类型变量

对于引用类型变量,如 String s = new String(“string”) ,这里的s实际是储存在栈内存的地址,而栈内存存放的是一个引用,指向堆内存的地址,堆内存的存放string这个字符串。在java开发的过程中,我们经常会声明很多变量,这些变量会分基本类型变量与引用类型变量,那么他们的区别是什么。对于a,b,他们所代表的地址一直是不一样的,b = a ,只是把a地址里面的值,复制给b里面去。那上面是引用类型变量呢,在我们日常的使用,如。上面的都是基础类型变量,有基本的默认值。

2025-03-29 16:21:46 207

原创 蓝桥杯,拔河问题

蓝桥杯算法,拔河问题,前缀和,双指针

2025-03-27 13:54:47 163

原创 蓝桥杯,最少刷题数

小蓝老师教的编程课有 N名学生, 编号依次是 1….…N。第 i 号学生这学期 刷题的数量是 Ai​。对于每一名学生, 请你计算他至少还要再刷多少道题, 才能使得全班刷题比他多的学生数不超过刷题比他少的学生数。

2025-03-26 21:18:52 962

原创 补全整数位数(整数前加0)

所用方法需要用到 #include <iomanio>!!!在做c++案例获取某一时间的前一秒和后一秒发现输出的结果有误差。发现“04”的字符串经过转换为int类型变成了4,经过探索发现可以同过cout<<setw(x)<<setfill('c')<<a<<endl;来进行整数的位数的补齐,其中,我们很容易知道setw(x)的x代表的是我们所设置的长度而setfill('c')则是给不足的位数补齐,'c'代表的是字符,这俩我

2022-03-22 22:43:41 2380

空空如也

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

TA关注的人

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