自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

许诗宇的博客

java web开发,看完希望大家左边点一个赞,关注一波,谢谢。 如需联系请加qq 2943699258,并注明姓名与原因。个人的代码库为 https://gitee.com/xushiyu

  • 博客(35)
  • 资源 (10)
  • 收藏
  • 关注

原创 leetcode-169-求众数 (majority element)-java

题目及测试package pid169;/*求众数给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2*/public class main { ...

2019-01-31 11:25:11 239

原创 组合模式总结-java版

目录 组合模式的简介组合模式的抽象代码组合模式的具体代码组合模式的透明与非透明模式组合模式的优点组合模式的缺点组合模式的适用场景组合模式的简介对于树形结构,当容器对象(如文件夹)的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象)并调用执行,牵一而动百,其中使用了递归调用的机制来对整个结构进行处理。由于容...

2019-01-31 09:54:57 326

原创 迭代器模式总结-java版

目录 迭代器模式的简介迭代器模式的抽象代码迭代器模式的具体代码迭代器模式的内部迭代器jdk自带的迭代器迭代器模式的优点迭代器模式的缺点迭代器模式的适用场景迭代器模式的简介在软件开发中,我们经常需要使用聚合对象来存储一系列数据。聚合对象拥有两个职责:一是存储数据;二是遍历数据。从依赖性来看,前者是聚合对象的基本职责;而后者既是可变化的,又是可分离的。因此,...

2019-01-30 17:04:47 1212

原创 leetcode-150- 逆波兰表达式求值(evaluate reverse polish notation)-java

题目及测试package pid150;/*逆波兰表达式求值根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: ["2", "1", "+"...

2019-01-30 09:57:39 318

原创 模板方法模式总结-java版

目录 模板方法模式简介模板方法模式的抽象代码模板方法模式的具体代码模板方法模式的钩子模板方法模式的优点模板方法模式的缺点模板方法模式的适用场景模板方法模式简介在软件开发中,有时也会遇到类似的情况,某个方法的实现需要多个步骤(类似“请客”),其中有些步骤是固定的(类似“点单”和“买单”),而有些步骤并不固定,存在可变性(类似“吃东西”)。为了提高代码的复用性和...

2019-01-29 16:59:12 284

原创 leetcode-371-两整数之和(sum of two integers)-java

题目及测试package pid371;/*两整数之和不使用运算符 + 和 - ​​​​​​​,计算两整数 ​​​​​​​a 、b ​​​​​​​之和。示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1*/public class main { public static void main(...

2019-01-29 13:30:43 183

原创 外观模式总结-java

目录外观模式简介外观模式的抽象代码外观模式的具体代码外观模式的抽象外观类外观模式与适配器模式与装饰者模式的不同外观模式的优点外观模式的缺点外观模式的适用场景外观模式简介外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便不...

2019-01-28 16:38:34 362

原创 适配器模式总结-java版

目录适配器模式简介适配器模式抽象代码适配器模式具体代码适配器模式的对象适配器与类适配器双向适配器缺省适配器适配器模式的优点适配器模式的缺点适配器模式的适用场景适配器模式简介与电源适配器相似,在适配器模式中引入了一个被称为适配器(Adapter)的包装类,而它所包装的对象称为适配者(Adaptee),即被适配的类。适配器的实现就是把客户类的请求转化为对适配...

2019-01-28 15:39:35 287

原创 leetcode-166-分数到小数(fraction to recurring decimal)-java

题目及测试package pid166;/* 分数到小数给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。示例 1:输入: numerator = 1, denominator = 2输出: "0.5"示例 2:输入: numerator = 2, deno...

2019-01-28 13:54:36 432

原创 leetcode-29-两数相除(divide two integers)-java

题目及测试package pid029;/* 两数相除给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, di...

2019-01-25 14:35:03 382

原创 命令模式总结-java版

目录命令模式简介命令模式抽象代码命令模式具体代码命令模式的撤销命令模式的命令队列命令模式的请求日志命令模式的优点命令模式的缺点命令模式的适用场景命令模式简介在软件开发中,我们经常需要向某些对象发送请求(调用其中的某个或某些方法),但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,此时,我们特别希望能够以一种松耦合的方式来设计软件,使得请求发送者与...

2019-01-25 09:45:06 949

原创 leetcode-69-x 的平方根(sqrt(t))-java

题目及测试package pid069;/*x 的平方根实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将...

2019-01-24 10:47:17 445

原创 关于java的File.seperator总结

File.seperator在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\\'。注意:如果要设置在本系统上的文件路径,则要用FIle.seperator但是,如果不是设置在本系统,而是在比如ftp服务器的路径,则要用/   而不是seperator,因为本系统如果是windows,会变成\\...

2019-01-23 15:56:35 962

原创 单例模式总结-java版

目录单例模式简介单例的具体模式介绍测试类懒汉式饿汉式同步懒汉式双重检查锁定懒汉式饿汉式单例类与懒汉式单例类比较Initialization Demand Holder (IoDH)单例模式的优点单例模式的缺点单例模式的适用场景单例模式简介在实际开发中,我们也经常遇到类似的情况,为了节约系统资源,有时需要确保系统中某个类只有唯一一个实例,当这个...

2019-01-23 15:44:35 222

原创 leetcode-50-Pow(x, n)-java

题目及测试package pid050;import java.util.List;/* Pow(x, n)实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.250...

2019-01-23 13:54:08 329

原创 抽象工厂模式总结-java版

目录 抽象工厂模式比工厂方法模式好在哪里抽象工厂模式简介抽象工厂模式抽象代码抽象工厂模式具体代码抽象工厂模式优点抽象工厂模式缺点抽象工厂模式适用场景抽象工厂模式比工厂方法模式好在哪里工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。...

2019-01-22 16:09:08 242

原创 工厂方法模式总结-java版

目录工厂方法模式比简单工厂模式好在哪里工厂方法模式简介工厂方法模式抽象代码工厂方法模式具体代码工厂方法的改进工厂方法模式优点工厂方法模式缺点工厂方法模式适用场景工厂方法模式比简单工厂模式好在哪里虽然简单工厂模式实现了对象的创建和使用分离,但是仍然存在如下两个问题:(1) 工厂类过于庞大,包含了大量的if…else…代码,导致维护和测试难度增大;...

2019-01-22 14:50:33 438

原创 leetcode-171-Excel表列序号(excel sheet column number)-java

题目及测试package pid171;/* Excel表列序号给定一个Excel表格中的列名称,返回其相应的列序号。例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...示例 1:输入: "A"输出: 1...

2019-01-22 13:40:44 242

原创 简单工厂模式总结-java版

目录为什么要用工厂模式简单工厂模式简介简单工厂模式抽象代码简单工厂模式具体代码简单工厂模式的改进简单工厂模式优点简单工厂模式缺点简单工厂模式适用场景为什么要用工厂模式  与一个对象相关的职责通常有三类:对象本身所具有的职责、创建对象的职责和使用对象的职责。 在Java语言中,我们通常有以下几种创建对象的方式:       (1) 使用new关键字直接...

2019-01-21 17:30:05 341

原创 leetcode-172-阶乘后的零(factorial trailing zeroes)-java

题目及测试package pid172;/*阶乘后的零给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。*/public class main {...

2019-01-21 12:34:52 243

原创 装饰模式总结-java版

目录装饰模式简介装饰模式抽象代码装饰模式具体代码装饰模式的透明与半透明模式透明装饰模式半透明装饰模式装饰模式优点装饰模式缺点装饰模式适用场景装饰模式注意事项装饰模式的应用装饰模式简介装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为,在现实生活中,这种情况也到处存在,例如一张照片,我们可以不改变照片本身,给它增加一个相框,使得它具...

2019-01-18 17:45:14 347

原创 观察者模式总结-java版

目录观察者模式简介观察者模式抽象代码观察者模式的推与拉JDK中的观察者模式Observer接口Observable类setChanged方法notifyObservers()方法 观察者模式具体代码观察者模式优点观察者模式缺点观察者模式适用场景观察者模式的应用观察者模式简介观察者模式是使用频率最高的设计模式之一,它用于建立一种对象与对象之...

2019-01-18 14:08:48 668

原创 leetcode-202-快乐数(happy number)-java

题目及测试package pid202;/* 快乐数编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例: 输入: 19输出: true解释: 1^2 + 9^2 = 828^2 ...

2019-01-18 11:30:44 572

原创 leetcode-380-常数时间插入、删除和获取随机元素(Insert Delete GetRandom O(1))-java

题目及测试package pid381;/* Insert Delete GetRandom O(1)设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。 insert(val):当元素 val 不存在时,向集合中插入该项。 remove(val):元素 val 存在时,从集合中移除该项。 getRandom:随机返回现有集合中的一项。每个元...

2019-01-17 10:18:36 997

原创 策略模式总结-java版

目录 为什么使用策略模式策略模式简介策略模式抽象代码策略模式具体代码策略模式的优点策略模式的缺点策略模式的适用场景为什么使用策略模式在软件开发中,我们也常常会遇到类似的情况,实现某一个功能有多条途径,每一条途径对应一种算法,此时我们可以使用一种设计模式来实现灵活地选择解决途径,也能够方便地增加新的解决途径。比如举一个例子,有父类鸭子,子类红鸭子,绿鸭子,...

2019-01-16 14:26:24 350

原创 23种设计模式总结-java版

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式(简单工厂模式)、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式...

2019-01-16 13:20:56 262

原创 leetcode-297-二叉树的序列化与反序列化 (seriliaze and deseriliaze binary tree)-java

题目及测试package pid297;/* 二叉树的序列化与反序列化序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符...

2019-01-16 11:41:22 364

原创 leetcode-300-最长上升子序列(longest increasing subsequence)-java

题目及测试package pid300;/*Longest Increasing Subsequence给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可...

2019-01-15 11:44:55 1316

原创 leetcode-322-零钱兑换 (coin change)-java

题目及测试package pid322;/*零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3 解释: 11 = 5 + 5 + 1示例 2:输入: coin...

2019-01-14 10:54:27 1367

原创 leetcode-62-不同路径 (unique paths)-java

题目及测试package pid062;/*不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:...

2019-01-11 17:43:42 828

原创 leetcode-55-跳跃游戏(jump game)-java

题目及测试package pid055;import java.util.List;/*跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。...

2019-01-11 10:25:25 439

原创 leetcode-240-搜索二维矩阵 II(search a 2ds matrix 2)-java

题目及测试package pid240;/* 搜索二维矩阵 II编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, ...

2019-01-10 10:33:26 405

原创 leetcode-33-搜索旋转排序数组(search in rotated sorted array)-java

题目及测试package pid033;/*搜索旋转排序数组假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别...

2019-01-09 13:54:13 133

原创 leetcode-56-合并区间(merge intervals)-java

题目合并区间给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被...

2019-01-08 13:50:39 513

原创 leetcode-34-在排序数组中查找元素的第一个和最后一个位置(find first and last position of element in sorted array)-java

题目及测试package pid034;/*在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], targe...

2019-01-07 11:13:09 202

算法第四版

算法第四版

2018-11-30

算法导论中文版

算法导论中文版

2018-11-30

Effective Java 中文第二版

Effective Java 中文第二版

2018-11-30

springmvc4和hibernate5整合jar包

springmvc4和hibernate5整合jar包

2018-09-05

hibernate4所需 jar包

hibernate4所需 jar包

2018-09-04

springmvc所需jar包

springmvc所需jar包

2018-09-04

mybatis jar包

mybatis.jar 放在项目文件夹/WEB-INF/lib下,mybatis jar包完整 可用

2018-07-25

jsoup的jar包,包括文档

jsoup的jar包,包括文档,示例,使用方法,简单易懂。

2018-07-25

hibernate3 jar包

hibernate3.jar 放在项目文件夹/WEB-INF/lib下,hibernate3 jar包完整 可用

2018-07-25

空空如也

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

TA关注的人

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