自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 1007:DNA排序

总时间限制:1000ms内存限制:65536kB描述现在有一些长度相等的DNA串(只由ACGT四个字母组成),请将它们按照逆序对的数量多少排序。逆序对指的是字符串A中的两个字符A[i]、A[j],具有i < j 且 A[i] > A[j] 的性质。如字符串”ATCG“中,T和C是一个逆序对,T和G是另一个逆序对,这个字符串的逆序对数为2。输入第1行:两个整数n和m,n(0<n<=50)表示字符串长度,m(0<m<=100)表示字符串数量第2至m+1行:每

2020-10-04 09:30:51 445 1

原创 1004:财务管理

总时间限制:1000ms内存限制:65536kB描述Larry今年毕业并找到了一份工作。他赚很多钱,但似乎总是不够。Larry认为他需要控制他的投资以解决自己的财务问题。Larry拿到了自己的银行账户详单,想看看自己有多少钱。请帮助Larry写一个程序,通过过去12个月中每月的月末结余,计算平均结余。输入输入包含12行,每行包含一个数,为某个月的结余。每个数都是不大于1,000,000的正数,保留两位小数,省略"$"符。输出输出一个数,为这12个月的平均月末结余,保留到小

2020-09-28 17:13:28 1210

原创 1002:方便记忆的电话号码(string, map)

总时间限制:2000ms 内存限制:65536kB描述英文字母(除Q和Z外)和电话号码存在着对应关系,如下所示:A,B,C -> 2D,E,F -> 3G,H,I -> 4J,K,L -> 5M,N,O -> 6P,R,S -> 7T,U,V -> 8W,X,Y -> 9标准的电话号码格式是xxx-xxxx,其中x表示0-9中的一个数字。有时为了方便记忆电话号码,我们会将电话号码的数字转变为英文字母,如把263-74

2020-09-28 16:21:09 495

转载 声明式事务

声明式事务转载自:https://blog.csdn.net/qq_33369905/article/details/105828921事务事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用。ACID原子性(atomicity)事务是原子性操作,由一系列动作组成,事务的原子性确保动作要么全部完成,要么完全不起作用一致性(consistency)一旦所有事务动作完成,事务就要被提交

2020-09-22 12:43:25 121

转载 MyBatis缓存

MyBatis缓存转载自https://www.bilibili.com/video/BV1NE411Q7Nx缓存查询:需要连接数据库,耗资源一次查询的结果,给它暂存在一个可以直接取到的地方 ->内存:缓存我们再次查询相同数据的时候,直接走缓存,就不用走数据库了什么是缓存存在内存中的临时数据将用户经常查询的数据放在缓存(内存)中,用户查询就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高了查询效率,解决了高并发系统的性能问题为什么使用缓存减少和数据库的交互次数

2020-09-19 21:19:06 67

原创 对称的二叉树

请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/dui-ch

2020-09-07 18:42:25 61

原创 二叉树的下一个节点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:首先需要分两种情况:此节点存在右子树,那么它的下一个节点就为右子树中的最左节点此节点不存在右子树,可能是最右节点,也可能是最左节点如果它为最左节点,那么下一个节点就是node->next,即它的父节点如果它为最右节点,那么下一个节点就是父节点的父节点的父节点,或者不存在/*public class TreeLinkNode {

2020-09-07 18:22:15 167

转载 序列化和持久化的区别

摘自https://www.cnblogs.com/hyjj/p/5746849.html**序列化是为了解决对象的传输问题,传输可以在线程之间、进程之间、内存外存之间、主机之间进行。**我之所以在这里提到序列化,是因为我们可以利用序列化来辅助持久化,可以说凡是可以持久化的对象都可以序列化,因为序列化相对容易一些(也不是很容易),所以主流的软件基础设施,比如.net和java,已经把序列化的框架完成了。持久化方案可以分为关系数据库方案、文件方案、对象数据库方案、xml数据库方案,现今主流的持久化方案是关

2020-09-05 00:09:35 163

原创 线程池

线程池转载自:https://blog.csdn.net/qq_41973594/article/details/106982052什么是线程池线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位,我们的程序最终都是由线程进行运作。在Java中,创建和销毁线程的动作是很消耗资源的,因此就出现了所谓“池化资源”技术。线程池是池化资源技术的一个应用,所谓线程池,顾名思义就是预先按某个规定创建若干个可执行线程放入一个容器中(线程池),需要使用的时候从线程池中

2020-09-04 23:53:20 89

原创 Redis

Redis摘自“https://blog.csdn.net/Apandam/article/details/105468958https://blog.csdn.net/DDDDeng_/article/details/108118544Nosql概述NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了

2020-09-04 19:13:32 270

原创 接上次Springboot没写完的MVC代码

接上次Springboot没写完的MVC代码控制层LoginController@Controllerpublic class LoginController { @Autowired private UserService userService; @RequestMapping("/login") public String login(@RequestParam("username")String username,

2020-09-03 11:06:41 126 1

原创 路径总和 II(dfs)

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回:[ [5,4,11,2], [5,8,4

2020-09-02 18:29:19 152

原创 二叉树的层序遍历

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal著作权归领扣网

2020-09-01 22:56:38 80

原创 二叉树的中序遍历

给定一个二叉树,返回它的中序 遍历示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]递归:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * }

2020-09-01 22:34:19 102

转载 使用注解开发MyBatis

使用注解开发MyBatis转载自https://blog.csdn.net/qq_33369905/article/details/106647290面向接口编程大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部

2020-08-31 11:17:17 61

转载 ResultMap及分页

ResultMap及分页转载自:https://blog.csdn.net/qq_33369905/article/details/106647326查询为null问题要解决的问题:属性名和字段名不一致查看之前的数据库的字段名Java中的实体类设计public class User { private int id; //id private String name; //姓名 private String password; //密码和数据库不一

2020-08-31 10:58:50 375

转载 CRUD操作及配置解析

CRUD操作及配置解析转载自:https://blog.csdn.net/qq_33369905/article/details/106647324CRUD操作namespace将上面案例中的UserMapper接口改名为 UserDao;将UserMapper.xml中的namespace改为为UserDao的路径 .再次测试结论:配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致!selectselect标签是mybatis中最常用的

2020-08-31 10:36:36 256

转载 MyBatis01

MyBatis01转载自:https://blog.csdn.net/qq_33369905/article/details/106647283MyBatis简介什么是MyBatisMyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。M

2020-08-31 00:31:39 98

转载 AOP

AOP转载自https://blog.csdn.net/qq_33369905/article/details/105828920什么是AOPAOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性

2020-08-30 20:52:05 123

转载 静态动态代理模式

代理模式转载自https://blog.csdn.net/qq_33369905/article/details/105828919代理模式为什么要学习代理模式,因为AOP的底层机制就是动态代理!代理模式:静态代理动态代理静态代理静态代理角色分析抽象角色 : 一般使用接口或者抽象类来实现真实角色 : 被代理的角色代理角色 : 代理真实角色 ; 代理真实角色后 , 一般会做一些附属的操作 .客户 : 使用代理角色来进行一些操作 .代码实现Rent . java 即抽象

2020-08-30 18:43:46 98

转载 使用注解开发

使用注解开发转载自:https://blog.csdn.net/qq_33369905/article/details/105828917使用注解开发在spring4之后,想要使用注解形式,必须得要引入aop的包在配置文件当中,还得要引入一个context约束<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:

2020-08-29 23:20:22 139

转载 自动装配

自动装配转载自https://www.bilibili.com/video/BV1WE411d7Dv?p=14自动装配说明自动装配是使用spring满足bean依赖的一种方法spring会在应用上下文中自动寻找,并自动给bean装配属性Spring中bean有三种装配机制,分别是:在xml中显式配置在java中显式配置隐式的bean发现机制和自动装配这里我们主要讲第三种:自动化的装配bean。Spring的自动装配需要从两个角度来实现,或者说是两个操作:组件扫描(compon

2020-08-29 21:57:58 102

转载 依赖注入(DI)

依赖注入(DI)转载自https://www.bilibili.com/video/BV1WE411d7Dv?p=12概念依赖注入(Dependency Injection,DI)依赖 : 指Bean对象的创建依赖于容器 ,Bean对象的依赖资源 .注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配构造器注入(上一节)Set注入(重点)要求被注入的属性 , 必须有set方法 , set方法的方法名由set + 属性首字母大写 , 如果属性是boolean类型 , 没有set方法

2020-08-29 21:11:47 146

转载 Spring的应用与IOC创建对象的方式

Spring的应用与IOC创建对象的方式转载自:https://blog.csdn.net/qq_33369905/article/details/106647285上一期中我们理解了IOC的基本思想,我们现在来看下Spring的应用:HelloSpring导入Jar包spring 需要导入commons-logging进行日志记录 . 我们利用maven , 他会自动下载对应的依赖项 .<dependency> <groupId>org.springfram

2020-08-29 20:46:24 112

转载 Spring

Spring概述及IOC理论推导转载自https://www.bilibili.com/video/BV1WE411d7Dv?p=2Spring概述Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用它是一个容器框架,用来装javabean(java对象),中间层框架(万能胶)可以起一个连接作用,比如说把St

2020-08-29 18:54:30 92

原创 翻转二叉树

翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1递归/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; *

2020-08-29 11:07:08 83

原创 路径总和

给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1返回 true, 因为存在目标和为 2

2020-08-29 10:49:51 65

原创 二叉树的最小深度

给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree著作权归领扣网络所有。商业转载请联系官方

2020-08-28 22:15:21 616

原创 平衡二叉树

给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \ 3 3 / \ 4

2020-08-28 19:46:37 68

原创 将有序数组转换为二叉搜索树

将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/c

2020-08-28 18:43:39 65

原创 二叉树的层次遍历 II

给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-order-tra

2020-08-28 17:16:43 53

转载 生成器模式

生成器模式转载自:https://www.jianshu.com/p/f4248525e2d1生成器模式的核心是 **当构建生成一个对象的时候,需要包含多个步骤,虽然每个步骤具体的实现不同,但是都遵循一定的流程与规则 **建造者模式也属于创建型模式,它提供了一种创建对象的最佳方式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的对象主要作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建复杂

2020-08-27 13:14:09 289

转载 抽象工厂模式和工厂模式的区别

转载自:https://www.zhihu.com/question/20367734/answer/115807228简单工厂模式简单工厂模式不是23种里的一种,简而言之,就是有一个专门生产某个产品的类。比如下图中的鼠标工厂,专业生产鼠标,给参数0,生产戴尔鼠标,给参数1,生产惠普鼠标。工厂模式工厂模式也就是鼠标工厂是个父类,有生产鼠标这个接口。戴尔鼠标工厂,惠普鼠标工厂继承它,可以分别生产戴尔鼠标,惠普鼠标。生产哪种鼠标不再由参数决定,而是创建鼠标工厂时,由戴尔鼠标工厂创建。后续直接调

2020-08-27 12:20:53 394

原创 二叉树的最大深度

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree著作权归领扣网络所有。商业转载请联系官方

2020-08-26 22:09:12 127

原创 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3BFS/** * Definition for a binary tree node. * public class TreeNode { * int v

2020-08-26 21:52:27 68

原创 相同的树

给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/same-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。dfs方法/** * Definition for a binary tree node. * public class TreeNode { * int val; * T

2020-08-26 20:07:31 117

原创 工厂模式

工厂模式摘自:https://www.cnblogs.com/theory/p/13338737.html基本概念作用:实现了创建者和调用者的分离详细分类:简单工厂模式工厂方法模式抽象工厂模式满足原则:开闭原则:对扩展开放,对修改关闭依赖倒置原则:要面向接口编程,不要面向实现编程迪米特法则:只与你的直接朋友交谈,不跟陌生人说话核心本质实例化对象不使用new,用工厂方法代替(Factory)将选择实现类,创建对象统一管理和控制,从而将调用者跟实现类解耦三种模式简

2020-08-26 15:44:05 93

原创 单例模式

单例模式摘自:https://blog.csdn.net/baolingye/article/details/101106783所谓单例,就是整个程序有且仅有一个实例。**该类负责创建自己的对象,同时确保只有一个对象被创建。**在Java,一般常用在工具类的实现或创建对象需要消耗资源。特点:类构造器私有持有自己类型的属性对外提供获取实例的静态方法饿汉式单例饿汉模式,可以想象一个很饿的人,需要立马吃东西,饿汉模式便是这样,在类加载时就创建对象,由于在类加载时就创建单例,因此不存在线程安全问

2020-08-26 11:46:29 91

原创 设计模式

设计模式设计模式概述什么是设计模式设计模式是前辈们对代码开发经验的总结,是解决特定问题的一些列套路,它不是语法规定,而是一套用来提高代码可复用性,可维护性,可读性,稳健性,以及安全性的解决方案学习设计模式的意义设计模式本质是面向对象设计原则的实际应用,是对类的封装性,继承性和多态性以及类的关联关系和组合关系的充分理解设计模式的基本要素模式名称问题解决方案效果GoF23根据作用划分创建型模式:单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式结构型模式:适配器模式

2020-08-26 11:45:56 86

原创 异常

异常什么是异常异常指程序运行中出现的不期而至的各种状况,如:文件找不到,网络连接失败,非法参数等异常发生在程序运行期间,它影响了正常的程序执行流程异常的分类检查性异常最具代表性的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的,例如要打开一个不存在的文件时,一个异常就发生了,这些异常在编译时不能被简单忽略运行时异常运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略,例如会无限运行的递归调用错误错误不是异常,而是脱离程序员控制的问题

2020-08-26 10:33:18 104

空空如也

空空如也

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

TA关注的人

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