自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式——模板方法

1)模板方法模式(Template Method Pattem),又叫模板模式(Template Patern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。2)简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变。个算法的结构,就可以重定义该算法的某些特定步骤。3)这种类型的设计模式属于行为型模式。

2024-04-18 09:35:20 516

原创 设计模式-职责链模式

就是一个链表,指向下一个处理请求的节点,在节点内进行判断。

2024-04-18 08:51:14 412

原创 设计模式——代理模式

首先创建一个接口,不仅教师类需要实现,代理类也需要实现,但是注意的是,代理类实现的时候,是使用的教师类的教书方法。因为是静态代理,所以就是教师代理类,要是换一个需要代理的类,就不能实现了。使用一个proxyFactory,传入一个Target目标对象,动态生成对应的目标代理对象。需要使用一个代理类来代理教师,将教师类聚合到代理类里面。例子:有一个教师类,教师类有一个教书方法。首先需要一个目标对象类的接口。目标对象类实现这个接口。

2024-04-17 12:04:01 733

原创 单例设计模式

所谓单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。Runtime类就是一个典型的单例设计模式单例模式有8种实现方法3. 懒汉式(线程不安全)4. 懒汉式(同步方法,线程安全)5. 懒汉式(同步代码块,线程不安全)

2024-04-11 19:42:34 559

原创 0-1背包问题

递推公式:dp[i][j] = Math.max(dp[i-1][j],dp[i-1][j-weight[i]]+vaule[i])初始化:for(weight[0]–>bagsize) 赋值为value[0] (也就是先在背包中放一个物品0)dp[i][j]:背包最大承重为j的时候,从0-i个物品中任意选取物品能得到的最大价值。for(i=1 --> 物品个数)需要明确的是:i和j的含义。

2024-04-11 16:45:34 336

原创 力扣刷题--不同的二叉搜索树96

该题虽然是一个二叉树的题目 但是使用动态规划做。

2024-04-07 11:10:53 174 1

原创 力扣刷题-整数拆分343

优化:j的取值,可以从 j(1–>i-1) 优化到 (1–>1/2) ,因为相乘的两个数肯定要比较接近才会使得结果更大。

2024-04-07 09:44:26 291

原创 图中的边关系和节点关系之间的转换

在relation数组中记录的是从一个节点到一个节点,前面的就叫做from,后面的就叫做to,因此每次添加进节点关系的数组的时候,from就是数组索引,to就是需要加入的值。也就是graph.get(from).add(to)。因为需要对graph不停进行增加,所以数组采用List<List>。如果输出不指定int[][]还是List<List> ,后面这一段转换可以不要。

2024-03-22 09:44:38 275

原创 力扣刷题-砖墙题554

一个思想流程就是,使用哈希表统计所有右边缝出现的次数,然后统计这些右边缝哪个出现的多,需要注意的是,右边缝不能包含最右边的边缝,所以在循环内层列表的时候,不能计算最后一块砖的长度。这题一开始没有想到思路,一开始还想着用枚举法做/笑哭。后来看了题解,原来就是哈希表的题目呀。

2024-03-21 09:53:39 264

原创 力扣刷题- 不含重复字符的最长子字符串 016

外层循环用来遍历字符串内循环用来找到无重复的子字符串的右边界。

2024-03-20 21:43:06 311

原创 力扣刷题——两两交换链表的节点:24题

然后cur指针后移,交换下两个节点,需要使得pre指向cur的前一个,因此使pre先指向cur。cur.next为空,说明后面只有一个节点了,一个节点就不需要交换了。循环的次数:cur且cur.next为空。cur为空,说明整个链表都已经两两交换了。

2024-01-11 13:31:01 348 1

原创 力扣刷题--设计链表707

先找到最后一个节点:也就是cur的遍历次数:for(int i = 0;i < size;i++)再进行插入。i < size;

2024-01-11 10:07:56 932

原创 力扣刷题--螺旋矩阵II 59题

使用一个start来控制每次从那个边界开始 用一个loop来控制到哪停止。

2024-01-10 20:28:41 348

原创 ArrayList数组转为int[ ]

【代码】ArrayList数组转为int[ ]

2024-01-09 14:41:31 368

原创 力扣刷题--左叶子之和 404题

3、单层递归逻辑:对于一个节点,先处理得到左子树的所有左叶子节点之和,也就是递归调用在节点的左孩子(sumOfLeftLeaves(node.left)),再得到右子树的所有左叶子节点之和,也就是递归调用在节点的右孩子(sumOfLeftLeaves(root.right)),然后再处理自己,是否有左叶子节点可以相加,然后左叶子节点总和就是这3个数值相加。1、递归的参数和返回值:参数就是需要处理的节点,返回值就是计算得到的左叶子节点之和。2、递归的终止条件:当要处理的节点是空的话,就返回0。

2024-01-07 11:34:15 374 1

原创 力扣刷题--对称二叉树

1、递归函数的参数和返回值:参数:两个比较的节点返回值:布尔类型,是否是对称的2、递归终止条件:a、如果两个比较节点为空,则返回trueb、如果两个节点又一个为空,则返回false,c、如果两个节点的数值不相同,则返回false,d、剩下就是两个节点数值相同,数值相同就需要继续向下判断3、单层递归的逻辑:如果两个数值相同,则要分别进行比较内侧和外侧是否对称,返回内侧和外侧的与值// 比较二叉树外侧是否对称:传入的是左节点的左孩子,右节点的右孩子。

2024-01-06 20:37:17 317 1

原创 力扣刷题——删除链表的倒数第N个节点19题

首先自己的想法:由于链表不可以直接得到链表长度,因此需要先遍历一遍,得到链表长度,再通过长度减去n得到需要删除节点的位置:力扣是可以过的,但是这样需要遍历链表2遍,因此可以改进。

2024-01-05 21:11:08 354 1

原创 力扣刷题-翻转链表206题

因此解决方法:使pre.next先指向空,再让cur.next=pre,这样就不会出现链表中发现循环的错误了。按照双指针法编写代码,如下代码,结果运行的时候报错了。

2024-01-05 20:01:22 314 1

原创 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingExce

Springboot + Mybatis中进行条件查询时候报错EmpMapper中代码如下:Test中的代码然后报错如下:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘name’ not found. Available parameters are [arg3, arg2, arg1, arg0, param3,

2024-01-05 09:50:23 406 1

原创 力扣刷题-二叉树的层序遍历

二叉树的层序遍历分为两种。借助一个队列的迭代法以及基于DFS的递归法。

2024-01-04 15:33:11 314 1

原创 二叉树的遍历-递归法和迭代法

而在中序中,访问了中节点,也只是把它压入栈,需要再访问它的左孩子,直到它的左孩子都处理完,都弹出了栈,加入result中,那么它才可以被弹出加入result中。刚刚的先序遍历最后的结果是中左右 如果改变左右节点的入栈顺序 就会变成 中右左 再反转这个结果 就是 左右中。后序遍历顺序:左 右 中 入栈顺序:中 左 右 出栈顺序:中-右-左。因此可以看出,中序遍历中,节点的访问和处理不是同时进行的。先序和后序都是访问中节点 就将它弹出加入result中了。遍历顺序:中 左 右 入栈顺序 中 右 左。

2024-01-04 14:26:19 308 1

原创 Springboot-Mybatis入门程序

Springboot-Mybatis入门程序

2024-01-04 10:34:49 808 1

原创 亚马逊商品元数据集解析(Amazon dataset)

亚马逊数据集解析

2024-01-03 16:46:58 1378 3

原创 解决亚马逊评论数据集中商品元数据集下载不了的问题

亚马逊商品元数据集下载,2023上半年还可以通过链接直接下载,最近下载却发现404了,离谱!量子纠缠了好几天,终于给我下载下来啦!先进入https://nijianmo.github.io/amazon/index.html。在该页面找到你要下载的metadata包,点击即可下载啦~点击这个链接,跳转到如下页面,注意这里的网址和上面不一样。然后会跳转到如下页面,如下填写后,提交表单。找到需要下载的metadata包,点击它。

2024-01-01 22:43:28 491

原创 控制反转和依赖注入

为什么需要?假使修改了EmpServiceA实现类的名称,那么这个地方也就需要进行修改,因此这是高耦合的。同理,Service层调用Dao层也是高耦合的,为了实现低耦合,现在使用一个IOC容器,将Service层和Dao层的实现类放入容器管理,需要的时候取出。那么代码就改成了但是这样会出现空指针异常,因此还需要依赖注入。也就是在 private EmpService empService注入运行时,依赖的对象。

2024-01-01 13:02:48 339

原创 分层解耦--三层架构

上一个例子中的 接收请求、数据访问(也就是从emp.xml中获取员工信息)、数据的处理(也就是将gender=1的转换成男 将gender=2的转换成女) 这些操作全都写在了EmpController一个类中。这不符合高内聚低耦合的规则为了实现高内聚低耦合(三层架构)要将其中1、加载并解析xml文件写入Dao层将2、对数据进行转换处理写入Service层3、接收请求、响应数据留在Controller层。

2024-01-01 12:37:18 355

原创 springboot响应案例

打开postman软件输入路径http://localhost:8080/listEmp。controller包下面存放这操作程序,处理页面接收到的数据,并返回前端页面。运行SpringbootWebQuickstart1Application。pojo包下面存放实体类,比如员工类,用于将数据打包成一个员工类。utils包下面存放工具类,比如解析XML文件类。resources/static下面存放前端代码。resources下面存放的是项目需要的资源。在vue中的钩子函数中的路径是这个。

2023-12-31 10:53:27 817 1

原创 力扣刷题--动态规划法

动态规划法

2023-12-30 09:46:37 341 1

原创 个人初次尝试SpringBoot踩的一些坑

由于Spring官网截至2023年11月只维护3.x.x版本,因此这个地方如果使用的还是start.spring.io,则下面的Java只能选择17或者21。这个时候,要么你的JDK就是17,要么你就需要修改为如图所示的start.aliyun.com,阿里云维护2.x.x版本,这时候你就可以发现下面的Java可以选择11啦~按理说,再启动SpringbootWebQuickstart01Application,程序就可以运行了,但是我们来看看结果。后来发现,自动生成这个文件夹,也需要删除。

2023-12-28 22:15:14 362 1

原创 Java刷题力扣的一些基本操作

int[ ] 和Integer[ ]之间的转换。

2023-12-11 09:03:49 304 1

原创 ATM系统

Account类return userName + (sex == '男'?"先生" : "女士");return sex;ATM类(操作类)//ctrl + alt + t 自动调出循环 System . out . println("=====欢迎进入ATM系统====");System . out . println("1、用户登录");System . out . println("2、用户开户");

2023-11-04 20:31:54 37

原创 常用API(一)

创建StringString方法。

2023-11-02 21:10:31 24

原创 MapReduce实践编程-Kmeans(使用eclipse)

实验数据选取自美国zillow房地产评估2017年房产数据,选取其中的经纬度信息进行聚类操作,方便可视化。KMeans算法作为一种划分式的聚类算法,利用MapReduce进行实现的主要难点在于满足KMeans每次迭代划分过程的中间结果保存。2、Mapper中读取数据文件中的每条数据并与中心点进行距离计算,输出key为最近的中心点序号。(可以设置为2,运行时间短一点)4、判断停机条件,不满足则复制新的中心文件到原中心文件,重复2,3步骤。3、Reducer中进行归并,计算新的中心点,存入新的中心文件。

2023-10-31 14:15:39 317

原创 使用eclipse实现MapReduce实践编程---统计不同手机号的用户使用的总流量

根据用户手机上网的行为记录,基于 MapReduce编程模型设计程序统计不同手机号的用户使用的总流量。

2023-10-30 10:36:10 751 2

空空如也

空空如也

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

TA关注的人

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