自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (2)
  • 收藏
  • 关注

原创 27. 移除元素

27. 移除元素难度:简单描述:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 n

2020-08-05 17:03:47 182

原创 金典系列之红黑树

红黑树(Red Black Tree) 是一种特化的AVL树(平衡二叉树),因此它也是自平衡二叉查找树。对其进行插入和删除操作时,都需要通过特定操作(包括左旋、右旋等),来保持其平衡性,从而获得较高的查找性能。

2020-05-26 21:02:50 328

原创 26. 删除排序数组中的重复项

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

2020-05-18 15:30:57 221

转载 25. K 个一组翻转链表

给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。

2020-05-18 12:51:24 157

原创 Java 14 新特性

JDK 14是由JSR 389在Java社区进程中指定的Java SE平台版本14的开源参考实现。已于2020年3月17日正式发布。此版本所包含的JEP(Java增强提案,Java Enhancement Propostal),共16个新特性。其中包含两个孵化器模块(Incubator)、三个预览特性(Preview)、两个弃用功能(Deprecate)和两个删除功能(Remove)。

2020-04-19 19:20:00 2972 2

原创 状态设计模式

状态模式(State)是一种行为型设计模式。当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。简单来说就是,一个含有多种状态的实例,其行为随状态的变化而变化。

2020-04-10 13:02:42 378

原创 策略设计模式

策略模式(Strategy)是一种行为型设计模式。该模式定义了一个算法簇,用不同的类分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。很好的满足了开闭原则

2020-04-10 13:01:02 254

原创 责任链设计模式

责任链模式(Chain of Responsibility)是一种行为型设计模式。该模式使得多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链(与链表结构类似),并沿着这条链传递该请求,直到有一个对象完成处理为止。

2020-04-08 18:51:55 289

原创 备忘录设计模式

备忘录模式(Memento)是一种行为型设计模式,该模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

2020-04-01 15:45:10 426

原创 访问者设计模式

访问者模式(Visitor)是一种结构型设计模式,表示一个作用于对象结构中的各元素的操作。它可以使你在不改变各元素类型的前提下定义作用于这些元素的新操作。值得注意的是,当对象结构中需要新增元素时,访问者这一角色,都需要添加对新增元素的操作行为。因此大部分场景下,我们不太会用到该设计模式,因为元素类型总是会变化,此时采用访问者模式不满足开闭原则。

2020-03-31 18:17:39 744

原创 命令设计模式

命令设计模式(Command)是一种行为型设计模式。该模式将一个请求、与具体的命令执行者封装成不同的对象。这种设计一方面可以对客户端的请求进行参数化,另一方面可以将命令的接收和执行很好的进行解耦。

2020-03-30 21:01:24 306

原创 迭代器设计模式

迭代器设计模式(Iterator)是一种结构型设计模式。该模式提供一种方法顺序访问一个聚合对象(如:JDK中的容器对象ArrayList等)中各个元素,而又不暴露该对象的内部表示。

2020-03-20 16:18:11 577

原创 观察者设计模式

观察者设计模式(Observer)是一种行为型设计模式。该模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象(Subject,即被观察对象)。这个主题对象在状态发生变化时,会通知所有观察者对象,是它们能够自动更新自己。

2020-03-20 10:59:34 181

原创 中介者设计模式

中介者设计模式(Mediator)是一种行为型设计模式。该模式引入中介对象来封装一系列的对象交互,并使这一系列的对象之间原本需要相互调用的依赖关系,全部转成对中介对象的单独依赖,即将多个对象的依赖关系由网状模型的转变成星状模型,从而使多个对象之间松耦合。

2020-03-19 14:03:43 287

原创 解释器设计模式

解释器设计模式1. 简单介绍模板方法设计模式是一种结构型设计模式。该模式定义了一个算法的骨架(方法执行的步骤),将算法的各个步骤的具体实现,交由子类完成。模板方法设计模式,让开发者只需要关注算法实现各个细节,而不必关系算法实现的全部流程。2. 使用场景具有统一的算法骨架,即方法执行步骤是固定不变的针对不同的场景,存在多个具有相同操作步骤的应用场景,但部分算法的实现细节有所差异3....

2020-03-16 22:55:57 424

原创 模板方法设计模式

模板方法设计模式1. 简单介绍模板方法设计模式是一种结构型设计模式。该模式定义了一个算法的骨架(方法执行的步骤),将算法的各个步骤的具体实现,交由子类完成。模板方法设计模式,让开发者只需要关注算法实现各个细节,而不必关系算法实现的全部流程。2. 使用场景具有统一的算法骨架,即方法执行步骤是固定不变的针对不同的场景,存在多个具有相同操作步骤的应用场景,但部分算法的实现细节有所差异3...

2020-01-19 21:16:30 362

原创 24. 两两交换链表中的节点

24. 两两交换链表中的节点难度:困难描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.代码实现:/** * Definition for singly-linked list. * pub...

2020-01-19 17:20:34 131

原创 23. 合并K个排序链表

23. 合并K个排序链表难度:困难描述:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6代码实现:/** * Definition for singl...

2020-01-19 16:55:44 133

原创 22. 括号生成

22. 括号生成难度:中等描述:给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]代码实现:class Solution { private List<String...

2020-01-19 16:43:39 212

原创 21. 合并两个有序链表

21. 合并两个有序链表难度:简单描述:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4代码实现:/** * Definition for singly-linked list. * publ...

2020-01-19 16:42:24 115

原创 20. 有效的括号

20. 有效的括号难度:简单描述:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。说明:假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231, 231 − 1]。如果数值超过...

2020-01-19 16:41:40 328

原创 19. 删除链表的倒数第N个节点

19. 删除链表的倒数第N个节点难度:中等描述:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:输入: "42"输出: 42说明:假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231, 231 − 1]。如果数值超过这个范围,请返回 INT_MAX (231 − 1) 或 INT_MIN (−231) 。进阶:...

2020-01-19 16:40:44 116

原创 18. 四数之和

18. 四数之和难度:中等描述:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 targe...

2020-01-14 12:59:39 118

原创 17. 电话号码的字母组合

17. 电话号码的字母组合难度:中等描述:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答...

2020-01-14 12:57:02 363

原创 16. 最接近的三数之和

16. 最接近的三数之和难度:中等描述:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = ...

2020-01-14 12:50:55 131

原创 15. 三数之和

15. 三数之和难度:中等描述:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1...

2020-01-14 12:49:17 147

原创 14. 最长公共前缀

14. 最长公共前缀难度简单描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例1输入: ["flower","flow","flight"]输出: "fl"示例2输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。示例3输入: "4193 with words"输出: 419...

2020-01-14 12:43:52 115

原创 13. 罗马数字转整数

13. 罗马数字转整数难度简单描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗...

2019-12-28 13:53:17 121

原创 12. 整数转罗马数字

12. 整数转罗马数字难度中等描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗...

2019-12-28 13:43:45 237

原创 代理设计模式

代理设计模式简单介绍代理设计模式是一种结构型设计模式。该模式是将能在不修改既有代码的前提下,完成对被代理对象的功能扩展,以及安全控制等功能。使用场景远程代理:目标类存在于另一个地址空间(可以简单理解为在另一台服务器上),在调用目标类接口方法时,可以通过调用代理类的接口方法,再由代理类与远端目标类进行通信。完成远程方法的透明调用。RPC框架的实现原理便是如此保护代理:目标对象的...

2019-12-20 20:32:51 187

原创 11. 盛最多水的容器

11. 盛最多水的容器难度中等描述给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3...

2019-12-17 21:48:19 129

原创 10. 正则表达式匹配

10. 正则表达式匹配难度困难描述给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *...

2019-12-16 23:20:54 285

原创 9. 回文数

9. 回文数难度简单描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例1输入: 121输出: true示例2输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例3输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一...

2019-12-16 23:12:14 144

原创 8. 字符串转换整数 (atoi)

8. 字符串转换整数 (atoi)难度中等描述请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有...

2019-12-13 18:33:06 129

原创 享元设计模式

享元设计模式简单介绍享元模式是一种创建型设计模式。该模式旨在将对象的粒度细分,通过某种共享方式,将创建完成的对象重复利用。以此来降低创建对象时的开销,一定程度上也能节省内存资源。使用场景程序中使用了大量相同类型的对象,这些对象在在创建时耗资源,并且占用空间较大,此种情况可以考虑使用享元模式。其次,当一个对象的大部分属性可以转换成外部状态属性,那么可以将外部状态属性抽取出来,通过传...

2019-12-13 18:23:53 276

原创 Idea设置类和方法注释模板

Idea设置类和方法注释模板设置Java类注释模板找到设置面板,具体界面如下图所示:路径:【File】→【Settings】→【Editor】 →【 File and Code Templates】→【Files】 →【Class】设置类注解模板类注释模板/** * * @class: ${NAME} // 注释所在的类名 * @author: Keiissl...

2019-12-11 11:29:25 1038

原创 外观设计模式

外观设计模式简单介绍外观模式又称为门面设计模式,是一种结构型设计模式。该模式旨在通过某个类(门面类),聚合各个子系统,并对外提供一组易用的接口。接口的复杂业务,由门面类通过其聚合的子系统协作完成。对于上游调用者来说完全透明。使用场景客户程序的实现,依赖多个子系统共同提供的服务。此种场景可以引入门面模式,通过门面类来聚合不同的子系统,对外提供统一、易用的接口,供客户程序直接调用。...

2019-12-08 22:47:17 269

原创 7. 整数反转

7. 整数反转难度简单描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1输入: 123输出: 321示例2输入: -123输出: -321示例3输入: 120输出: 21注意假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。代...

2019-12-08 17:08:35 102

原创 6. Z 字形变换

6. Z 字形变换难度中等描述将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你...

2019-12-07 13:14:06 163

原创 5. 最长回文子串

5. 最长回文子串难度中等描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例1输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例2输入: "cbbd"输出: "bb"代码实现public class Solut...

2019-12-06 01:30:22 219

Java开发手册(泰山版).rar

《Java开发手册》始于阿里内部规约,在全球Java开发者共同努力下,已成为业界普遍遵循的开发规范。手册涵盖编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程规约、设计规约七大维度。此次泰山版发布,将带来三大亮点:新增5条日期时间规约;新增2条表别名sql规约;新增统一错误码规约。

2020-04-22

jdk-8u231-windows-x64.rar

Java1.8安装包,版本(jdk1.8.0_231),JDK1.8安装包,版本(jdk1.8.0_231)

2019-11-22

空空如也

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

TA关注的人

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