java
文章平均质量分 78
红颜莫知己
这个作者很懒,什么都没留下…
展开
-
前k个高频单词
692. 前K个高频单词给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单词,均为2次。注意,按字母顺序 “i” 在 “love” 之前。示例 2:输入: [“the”, “da原创 2021-05-20 10:39:56 · 285 阅读 · 1 评论 -
剑指offer_替换空格
目录题目描述方法一:StringBuilderjava代码:方法二:字符串数组char[]java代码:方法三:replace()库函数题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。示例:输入:“We Are Happy”返回值:“We%20Are%20Happy”方法一:StringBuilder我们可以将字符串s都重新拼接StringBuilder中,因为后者原创 2021-05-17 21:25:59 · 189 阅读 · 0 评论 -
剑指offer_二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]给定 target = 7,返回 true。给定 target = 3,返回 false。示例1输入:7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]原创 2021-05-17 11:22:50 · 202 阅读 · 0 评论 -
二叉树的堂兄弟节点
目录993. 二叉树的堂兄弟节点思路分析DFSBFS993. 二叉树的堂兄弟节点在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。我们给出了具有唯一值的二叉树的根节点 root ,以及树中两个不同节点的值 x 和 y 。只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true 。否则,返回 false。示例 1:输入:root = [1,2,3,4], x = 4, y =原创 2021-05-17 09:09:06 · 1078 阅读 · 8 评论 -
Mybatis——动态sql之if、where、foreach
<!-- 配置查询所有操作 --> <select id="findArticleByTitleOrAuthorOrSource" resultType="article"> select * from t_article <where> <if test="source != null"> and source = #{source} <原创 2021-05-16 19:25:43 · 152 阅读 · 1 评论 -
Mybatis——动态代理的执行方式及规范
目录mybatis的动态代理的规范1.创建 dao层接口ChannelDao2.创建映射文件ChannelDao.xml3.测试添加删除查询一个对象查询所有对象mybatis的动态代理的规范注意:要使用mybatis动态代理的方式,要保证下列5个规范映射xml文件和接口类在同一目录映射xml文件名和接口名一样映射文件中的namespace的值要和接口类的全包名相同接口的方法名要和映射文件中查询配置的id相同接口的参数名和返回类型要和映射文件中对应的查询配置参数一致1.创建 dao层接口原创 2021-05-16 17:25:59 · 329 阅读 · 1 评论 -
Mybatis——CRUD操作
目录查询查询测试添加添加测试更新更新测试删除删除测试创建SqlMapConfig.xml数据库连接创建配置查询的映射文件Channel.xml查询<select id="findAll" resultType="edu.xalead.Channel"> select * from t_channel</select>查询测试public class MybatisTest { /** * 创建mybatis工厂 */ Sql原创 2021-05-16 16:48:01 · 129 阅读 · 0 评论 -
MyBatis——在IDEA中配置mybatis框架
Mybaties简介用IDEA搭建Mybatis项目添加依赖创建SqlMapConfig.xml数据库连接创建测试类原创 2021-05-16 15:01:14 · 505 阅读 · 0 评论 -
字典树(java)
目录什么是字典树字典树的基本性质如下:字典树的应用字典树的实现插入(insert)java代码:查询完整代码:什么是字典树字典树(又叫单词查找树、TrieTree),是一种树形结构,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串,如01字典树)。主要思想是利用字符串的公共前缀来节约存储空间。很好地利用了串的公共前缀,节约了存储空间。字典树主要包含两种操作,插入和查找。其实很好理解,小时候我们都用过英语字典,前面有个目录,目录里的内容就是字典树字典树的基本性质如下:根节点没有字原创 2021-05-16 11:03:20 · 1037 阅读 · 1 评论 -
剑指offer 03.数组中重复的数字
目录找出数组中重复的数字。思路分析方法一:Setjava代码:复杂度分析时间复杂度空间复杂度方法二 :原地交换java代码找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3思路分析方法一:Set看到重复两个字我们一定要想起HashSet这个数据结构,它是基于Ha原创 2021-05-15 19:41:14 · 108 阅读 · 1 评论 -
Spring MVC对restful的支持
1.什么是restful?Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格,是对http协议的诠释。资源定位:互联网所有的事物都是资源,要求url中没有动词,只有名词。没有参数Url格式:http://blog.csdn.net/beat_the_world/article/details/45621673资源操作:使用post、delete、put、get,使用不同方法对资源进行操作。分别对应添加、删除、修改、查询。一般使用时还是post和get。Put和Delet原创 2021-05-15 17:26:10 · 164 阅读 · 0 评论 -
Spring MVC中自定义类型转换器(Date)
目录前言Spring MVC中自定义类型转换器前言java中自带的类型转换器只有八种,也就是把中基本类型对应的对象类IntegerStringCharacterLongShortDoubleFloatByte其余的比如Date就没有自动转换器,需要我们自己来写Spring MVC中自定义类型转换器我们首先自己创建一个包converter用来放自定义转换器DateConverter类继承Converter类,注意这里的Converter一定要选正确Converter<原创 2021-05-15 16:51:07 · 223 阅读 · 0 评论 -
Spring_MVC集合类型的参数赋值
目录数组链表对象类数组@PostMapping("array") public String array (String[] arr) { System.out.println(Arrays.asList(arr)); return "/success.jsp"; }链表@PostMapping("list") public String list(@RequestParam(value = "stringlist")List<Str原创 2021-05-15 14:45:23 · 236 阅读 · 0 评论 -
罗马数字转整数
13. 罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V原创 2021-05-15 09:49:30 · 202 阅读 · 0 评论 -
Spring事务传播性
所谓的事务传播性是指:当多个含有事务方法嵌套调用时,这些方法处理事务的规则比如:当事务方法A调用事务方法B时,内层事务方法B会合并到外层调用者A方法的事务中,还是会新开起自己的事务。另外如果合并到外层事务,那么内层事务回滚后,外层方法会不会回滚,这些就是由spring事务传播性规则控制的。Spring事务传播性处理这种嵌套事务的行为一共定义了7种处理方式:PROPAGATION_REQUIREDPROPAGATION_REQUIRED_NEWPROPAGATION_SUPPORTPRO.转载 2021-05-14 11:17:53 · 796 阅读 · 1 评论 -
Spring 中的JdbcTemplate
1.JdbcTemplateJdbc是Spring框架中提供的一个对象,是对原始JDBC API的简单封装。 Spring框架为我们提供了很多的操作模板类。操作关系型数据的:JdbcTemplateHibernateTemplate操作nosql数据库的:RedisTemplate操作消息队列的:JmsTemplate我们今天的主角在spring-jdbc-5.2.5.RELEASE.jar中,我们在导包的时候,除了要导入这个jar包外,还需要导入spring-t原创 2021-05-14 10:54:37 · 207 阅读 · 2 评论 -
整数转罗马数字(详解+图解)
目录12. 整数转罗马数字贪心算法思路分析java代码:复杂度分析时间复杂度空间复杂度暴力匹配法思路分析java代码复杂度分析时间复杂度空间复杂度12. 整数转罗马数字罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000原创 2021-05-14 08:54:18 · 1312 阅读 · 7 评论 -
AOP中的一些术语
1.aop 中的一些术语Joinpoint( 连接点):所谓连接点是指那些被拦截到的点。在 spring 中,这些点指的是方法,因为 spring 只支持方法类型的连接点。Pointcut( 切入点):所谓切入点是指我们要对哪些 Joinpoint 进行拦截的定义。Advice( 通知/ 增强):所谓通知是指拦截到 Joinpoint 之后所要做的事情就是通知。通知的类型:前置通知,后置通知,异常通知,最终通知,环绕通知。Introduction( 引介):引介是一种特殊的通知在不原创 2021-05-13 19:42:27 · 1677 阅读 · 2 评论 -
Spring中AOP技术基础——静态代理、动态代理(JDK动态代理)、CGLIB代理
代理模式我们首先来了解一下什么是代理模式:为其他对象提供一个代理以控制对某个对象的访问。代理类主要负责为委托了(真实对象)预处理消息、过滤消息、传递消息给委托类,代理类不现实具体服务,而是利用委托类来完成服务,并将执行结果封装处理。其实就是代理类为被代理类预处理消息、过滤消息并在此之后将消息转发给被代理类,之后还能进行消息的后置处理。代理类和被代理类通常会存在关联关系(即上面提到的持有的被带离对象的引用),代理类本身不实现服务,而是通过调用被代理类中的方法来提供服务。简单说就是用多个接口多个类来原创 2021-05-13 16:52:43 · 146 阅读 · 1 评论 -
Spring中用配置类代替配置xml文件
目录1.Configuration注解2.ComponentScan注解3.注解配置工厂的获取4.Bean注解5.Import注解6.Spring属性配置文件及PropertySource注解7.Spring和junit的集成1.Configuration注解这个注解的意义就是:只要包含这个configuration注解的类就是配置类2.ComponentScan注解@ComponetScan代替xml配置中的<context:component-scan base-package="原创 2021-05-09 21:25:01 · 609 阅读 · 2 评论 -
Spring连接Druid(阿里数据源)
目录配置pom文件配置依赖beanFactory.xml测试是否连接配置pom文件<!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId>原创 2021-05-09 17:09:44 · 233 阅读 · 0 评论 -
Spring注释配置Bean
目录一、通过注释配合Bean1.Component注释2.和@Compent功能一样的注解@Controller 主要用到web层@Service 服务service层@Repository 数据访问层 dao层3.Value注解4.Scope注释指定单例或多例5. @Autowired、@Qualifier("ser")、@Resource6.生命周期相关注解一、通过注释配合Bean通过配置context的publicId,Uri即定义的名字空间的前缀contextpubilicIdhttp:原创 2021-05-09 16:47:38 · 112 阅读 · 0 评论 -
制作m束花所需的最少天数
目录1482. 制作 m 束花所需的最少天数思路分析java代码(详细注释)1482. 制作 m 束花所需的最少天数给你一个整数数组 bloomDay,以及两个整数 m 和 k 。现需要制作 m 束花。制作花束时,需要使用花园中 相邻的 k 朵花 。花园中有 n 朵花,第 i 朵花会在 bloomDay[i] 时盛开,恰好 可以用于 一束 花中。请你返回从花园中摘 m 束花需要等待的最少的天数。如果不能摘到 m 束花则返回 -1 。示例 1:输入:bloomDay = [1,10,3,10,原创 2021-05-09 09:59:23 · 150 阅读 · 0 评论 -
Spring Bean 的基本配置
目录1.Spring中set方法的注入1.1set的两种注入方法1.2type属性1.3Date()类型的注入2.Spring_scop3.自动注入(autowire)4.构造注入Array注入(数组注入)1.Spring中set方法的注入User实体@Data//lombok提供的有参构造@AllArgsConstructor////lombok提供的无参构造@NoArgsConstructorpublic class User { private int id; priv原创 2021-05-06 19:48:28 · 341 阅读 · 10 评论 -
打家劫舍(动态规划)
198. 打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:原创 2021-05-06 09:29:44 · 162 阅读 · 0 评论 -
解码异或后的数组
目录1720. 解码异或后的数组思路分析什么是异或案例分析java代码1720. 解码异或后的数组未知 整数数组 arr 由 n 个非负整数组成。经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。例如,arr = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。给你编码后的数组 encoded 和原数组 arr 的第一个元素 first(arr[0])。请解码返回原数组 arr原创 2021-05-06 08:26:43 · 167 阅读 · 1 评论 -
IoC(控制反转)和DI(依赖注入)
添加工厂建立所需要的依赖我们使用maven的时候,能使用依赖就使用依赖,可以方便我们很多,比如lombok,junit等依赖<properties> <spring-version>5.2.5.RELEASE</spring-version> </properties> <dependencies> <!-- https://mvnrepository.com/artifact/org.spri原创 2021-05-03 11:00:20 · 95 阅读 · 0 评论 -
砖墙(HashMap)
554. 砖墙你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度之和应该相等。你现在要画一条 自顶向下 的、穿过 最少 砖块的垂线。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。给你一个二维数组 wall ,该数组包含这堵墙的相关信息。其中,wall[i] 是一个代表从左至右每块砖的宽度的数组。你需要找出怎样画才能使这条线 穿过的砖块数量最少 ,并且返回 穿过的砖块数量原创 2021-05-02 11:11:49 · 112 阅读 · 0 评论 -
员工的重要性(DFS和BFS)
690. 员工的重要性给定一个保存员工信息的数据结构,它包含了员工 唯一的 id ,重要度 和 直系下属的 id 。比如,员工 1 是员工 2 的领导,员工 2 是员工 3 的领导。他们相应的重要度为 15 , 10 , 5 。那么员工 1 的数据结构是 [1, 15, [2]] ,员工 2的 数据结构是 [2, 10, [3]] ,员工 3 的数据结构是 [3, 5, []] 。注意虽然员工 3 也是员工 1 的一个下属,但是由于 并不是直系 下属,因此没有体现在员工 1 的数据结构中。现在输入一个原创 2021-05-01 22:06:25 · 626 阅读 · 0 评论 -
动态规划算法:没有冗杂的概念,超简单,超容易理解
目录前言什么是动态规划?动态规划的解题步骤斐波那契数列思路分析java代码:leetCode377. 组合总和 Ⅳ思路分析(一定要仔细看)java代码:前言在这里我只想说一句,希望读者可以仔细看,看完博主可以保证,你一定会做题。什么是动态规划?动态规划(Dynamic Programing),简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。或许有人连重叠子问题是什么都不知道,就是重复的计算,我们举个很简单例子说明一下:我们都知道斐波那契数列用递归算法得到的,我们画出图示这样的原创 2021-04-24 18:38:45 · 140 阅读 · 1 评论 -
组合总和 Ⅳ(超详细讲解)
leetCode377. 组合总和 Ⅳ给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围。示例 1:输入:nums = [1,2,3], target = 4输出:7解释:所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。原创 2021-04-24 18:38:23 · 450 阅读 · 0 评论 -
vue入门教程(4)——组件化
目录7.组件化7.1 定义全局组件7.2.组件的复用7.3.局部组件7.4.vue组件简单属性传值7.组件化在大型应用开发时,页面可以划分很多部分,往往不同的页面也会有相同的部分。例如可能会有相同的头部导航。但是如果每个页面都独自开发,这无疑增加了我们的开发成本,所以我们会把页面不同的部分拆分成独立的组件,然后在不同的页面就会共享这些组件,避免重复开发。7.1 定义全局组件我们通过Vue的componet方法来定义一个全局组件语法://全局组件Vue.componet("",{})""为此原创 2021-04-22 17:21:40 · 317 阅读 · 0 评论 -
vue入门教程(5)——vue中vue-router的使用
目录前言7.路由vue-router7.1编写父类组件7.2.编写登陆及注册组件7.3.在父组件中引用7.4.使用vue-router1.引入vue-router依赖2.创建VurRouter对象并加入子组件3.在Vue对象中加载VueRouter前言在学习vue-router之前,我们要学会怎么样在IDEA中安装vue-router,若有不懂的同学请跳转博客在IDEA中安装vue-router。7.路由vue-router在我们安装好vue-router之后,我们要导入依赖<script原创 2021-04-23 10:15:14 · 432 阅读 · 0 评论 -
vue入门教程(6)——webpack
8.webpackWebpack 是一个前端资源的打包工具,它可以将js、image、css等资源当成一个模块进行打包。中文官方网站:https://www.webpackjs.com/官方给出的解释:本质上,webpack是一个现代化JavaScript应用程序的静态模块打包器(module bundler)。当webpack处理应用程序时,它会递归的构建一个依赖关系图(dependency graph),其中包含应用程序的每个模块,然后将这些模块打包成一个或多个bundle。为什么要打包原创 2021-04-23 19:50:07 · 245 阅读 · 0 评论 -
完全二叉树的节点数
目录Leecode.222完全二叉树的节点数思路分析层序遍历_迭代递归_二叉树的遍历迭代_二叉树的遍历Leecode.222完全二叉树的节点数给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。示例 1:输入:root = [1,2,3,4,5,6]输出:6示例 2:输入:root原创 2021-04-20 10:02:39 · 2598 阅读 · 0 评论 -
树的最大深度和最小深度(java)
目录树的深度和高度二叉树的最大高度思路分析递归迭代N叉树的最大深度LeetCode.559.N叉树的最大深度思路分析递归迭代树的深度和高度什么是树的深度?什么是树的高度,一张图让你弄明白!我们暂时以二叉树为例。二叉树的最大高度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 。思路分析我们在做每一道关于二叉树的题时,都要原创 2021-04-20 09:13:53 · 2030 阅读 · 0 评论 -
vue入门教程(1)——IDEA中vue的安装及简单使用
Vue教程前言在IDEA中安装vue在Chrome中加入扩展程序vue-devtools下载vue-devtools在Chrome中添加扩展程序Vue入门案例1.HTML模板中写入内容2.vue渲染3.双向绑定4.事件处理5.生命周期钩子5.1钩子函数5.1this前言我们在学会使用Vue之前,我们得学会如何在IDEA中安装vue,并且在Chrome中加入扩展程序vue-devtools在IDEA中安装vue这个请访问博主博客vue的安装。在Chrome中加入扩展程序vue-devtools下载原创 2021-04-16 19:51:20 · 1865 阅读 · 5 评论 -
贪心算法:摆动序列
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。原创 2021-04-16 15:32:49 · 407 阅读 · 0 评论 -
贪心算法简述
贪心算法什么是贪心算法贪心的本质是选择每一阶段的局部最优,从而达到全局最优我们举个例子,方便理解:假设这里有十张钞票,你从中拿走五张,如果想拿到的钱数额最大,再怎么拿?我们每次都拿最大面额的钞票,这就是局部最优;最后我们拿到的钞票数额就是最大的,这就是全局最优;由局部最优推出全局最优。就这就贪心算法最基本的思想贪心没有套路很多同学想问,做题想不出是贪心算法,有没有什么办法或者套路,一眼就看出了要是用贪心算法。抱歉,没有就比如上述例题,其实我们不需要知道这种拿法是贪心算法我们都能想原创 2021-04-16 14:05:43 · 242 阅读 · 0 评论 -
对称二叉树
226. 翻转二叉树翻转一棵二叉树。示例:输入:输出:这是一道非常简单题,就是对二叉树遍历的考察,但在这里有一个问题,那就是我们使用哪种遍历方式呢?很多人程序过了,却不知道自己使用的是哪种遍历方式,递归...原创 2021-04-15 10:03:32 · 734 阅读 · 0 评论