自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LieRabbit的博客

有些梦虽然遥不可及,但并不是不可能实现,只要我足够的强

  • 博客(34)
  • 问答 (1)
  • 收藏
  • 关注

原创 ArrayList实现原理

概述ArrayList可以简单的看作是动态数组,相对于普通的数组它可以动态的增加容量或者减少容量。要注意的是ArrayList并不是线程安全的,因此一般建议在单线程中使用ArrayList。实现原理继承关系public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, jav

2018-02-07 18:43:02 164

原创 [LeetCode]移除元素(Remove Element)

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

2018-10-16 15:35:30 134

原创 [LeetCode]删除排序数组中的重复项(Remove Duplicates from Sorted Array)

题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:...

2018-10-10 11:19:49 146

原创 [LeetCode]k个一组翻转链表(Reverse Nodes in k-Group)

题目描述给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。示例 :给定这个链表:1-&gt;2-&gt;3-&gt;4-&gt;5当 k = 2 时,应当返回: 2-&gt;1-&gt;4-&gt;3-&gt;5当 k = 3 时,应当返回: 3-&gt;2-&gt...

2018-10-09 14:55:53 162

原创 [LeetCode]两两交换链表中的节点(Swap Nodes in Pairs)

题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1-&amp;gt;2-&amp;gt;3-&amp;gt;4, 你应该返回 2-&amp;gt;1-&amp;gt;4-&amp;gt;3.说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。ListNode数据结构class ListNode { int val; ListNo...

2018-10-09 14:48:53 116

原创 [LeetCode]合并K个排序链表(Merge k Sorted Lists)

题目描述合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1-&gt;4-&gt;5,1-&gt;3-&gt;4,2-&gt;6]输出: 1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4-&gt;5-&gt;6ListNode数据结构class ListNode { int val; ListNode nex...

2018-10-08 11:01:33 106

原创 [LeetCode]括号生成(Generate Parentheses)

题目描述给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]解决方法合法的括号:左括号在对应右括号的左边 -&gt; 先添加左括号再添加右括号即可保证左括号在右括号的左边相同数量的左右括号 -&gt; ...

2018-09-30 14:52:01 123

原创 [LeetCode]合并两个有序链表(Merge Two Sorted Lists)

题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1-&gt;2-&gt;4, 1-&gt;3-&gt;4输出:1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4解决方法先比较头节点,然后递归比较剩下的节点,最后将其连接起来 public ListNode mergeTwoLists(ListNode...

2018-09-29 11:20:58 90

原创 [LeetCode]有效的括号(Valid Parentheses)

题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false...

2018-09-28 16:52:10 112

原创 [LeetCode]删除链表的倒数第N个节点(Remove Nth Node From End of List)

题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1-&gt;2-&gt;3-&gt;4-&gt;5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1-&gt;2-&gt;3-&gt;5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗ListNode数据结构class ListNode { in...

2018-09-27 10:06:58 96

原创 [LeetCode]四数之和(4Sum)

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

2018-09-26 16:04:51 157

原创 [LeetCode]电话号码的字母组合(Letter Combinations of a Phone Number)

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

2018-09-25 14:57:47 156

原创 [LeetCode]最长公共前缀(Longest Common Prefix)

题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。解决方法横向匹配所有字符串取出字符串...

2018-09-25 12:17:54 153

原创 [LeetCode]罗马数字转整数(Roman to Integer)

题目描述罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的...

2018-09-20 21:22:06 213

原创 [LeetCode]整数转罗马数字(Integer to Roman)

题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列...

2018-09-18 14:24:40 162

原创 [LeetCode]盛最多水的容器(Container With Most Water)

题目描述给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。画 n 条垂直线,使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。解决方法从头和尾开始找起,一开始就获得了最大宽度,由于面积是取较小的高度,所以移动高度较小的索引以期待能获得更高的高度。 ...

2018-09-17 16:09:51 184

原创 [LeetCode]正则表达式匹配(Regular Expression Matching)

题目描述给定一个字符串 (s) 和一个字符模式 (p)。实现支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符。 ‘*’ 匹配零个或多个前面的元素。 匹配应该覆盖整个字符串 (s) ,而不是部分字符串。 说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。 示例 1:...

2018-09-09 14:55:27 139

原创 [LeetCode]回文数(Palindrome Number)

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

2018-09-08 21:07:43 170

原创 [LeetCode]字符串转整数(String to Integer (atoi))

题目描述实现 atoi,将字符串转为整数。 在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。 当字符串中的...

2018-09-05 22:18:19 124

原创 [LeetCode]反转整数(Reverse Integer)

题目描述给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的...

2018-09-04 10:34:58 171

原创 [LeetCode]Z字形变换(ZigZag Conversion)

题目描述将字符串 “PAYPALISHIRING” 以Z字形排列成给定的行数:P A H NA P L S I I GY I R之后从左往右,逐行读取字符:”PAHNAPLSIIGYIR” 实现一个将字符串进行指定行数变换的函数: string convert(string s, int numRows); 示例 1: 输入: s = “P...

2018-09-03 16:40:27 126

原创 仿segmentfault-table横向滚动

问题描述自己的博客在用移动端访问时,如果table的列数足够多会显示不全,如下图红圈所示正常情况如图解决过程使用chrome发现segmentfault的解决方法是在table上套一个table-wrap,如下图蓝色背景和红圈所示首先想到直接在table上套一个table-wrap即可 接着查看别的table时发现并不是每一个table都被套上一个table-...

2018-09-02 18:09:43 291

原创 [LeetCode]最长回文子串(Longest Palindromic Substring)

题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba”也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb”解决方法首先,我们通过在字母之间插入特殊字符’#’来将输入字符串S转换为另一个字符串T,这么做...

2018-09-02 13:10:34 319

原创 [LeetCode]两个排序数组的中位数(Median of Two Sorted Arrays)

题目描述给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。 请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。 示例 1: nums1 = [1, 3] nums2 = 2 中位数是 2.0 示例 2: nums1 = [1, 2] nums2 = [3, 4] 中位数是 (2 + 3)...

2018-09-01 19:24:34 136

原创 [LeetCode]无重复字符的最长子串(Longest Substring Without Repeating Characters)

题目描述给定一个字符串,找出不含有重复字符的最长子串的长度。 示例: 给定 “abcabcbb” ,没有重复字符的最长子串是 “abc” ,那么长度就是3。 给定 “bbbbb” ,最长的子串就是 “b” ,长度是1。 给定 “pwwkew” ,最长子串是 “wke” ,长度是3。请注意答案必须是一个子串,”pwke” 是 子序列 而不是子串。解决方法...

2018-08-31 07:50:52 75

原创 [LeetCode]两数相加(Add Two Numbers)

题目描述给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -&gt; 4 -&gt; 3) + (5 -&gt; 6 -&gt; 4) 输出:7 -&gt; 0 -&gt; 8 原因:342 + 465 = 807L...

2018-08-30 15:09:05 170

原创 [LeetCode]两数之和(Two Sum)

题目描述给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums1 = 2 + 7 = 9 所以返回 [0, 1]解决方案若a + b = c,则 c - a = b。...

2018-08-30 14:52:58 191

原创 Spring Boot快速入门(六):thymeleaf

静态资源在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。Spring Boot的默认位置是resources/static模版页面各种模版的页面,这次我们选用ThymeleafSpring Boot的默认位置是resources/templates渲染页面在之前的示例中,我们都是通过@RestController来处理请求,所以返回的内容为jso...

2018-01-22 13:11:14 456

原创 Spring Boot快速入门(五):使用MyBatis(注解形式)进行数据库操作

添加依赖新建项目选择web,MyBatis,MySQL三个依赖 对于已存在的项目可以在bulid.gradle加入,spring boot将会帮你自动配置好 compile('org.springframework.boot:spring-boot-starter-data-jpa')compile('org.springframework.boot:spring-bo...

2018-01-20 13:13:17 595 1

原创 Spring Boot快速入门(四):使用jpa进行数据库操作

添加依赖新建项目选择web,JPA,MySQL三个依赖 对于已存在的项目可以在bulid.gradle加入,spring boot将会帮你自动配置好 compile('org.springframework.boot:spring-boot-starter-data-jpa')compile('org.springframework.boot:spring-boot-s...

2018-01-16 22:13:03 342

原创 Spring Boot快速入门(三):依赖注入

spring boot使用依赖注入的方式很简单,只需要给添加相应的注解即可 @Service用于标注业务层组件  @Controller用于标注控制层组件 @Repository用于标注数据访问组件,即DAO组件  @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 然后在使用的地方使用@Autowired即可创建MyComponent,使用...

2018-01-16 21:48:22 272

原创 Spring Boot快速入门(二):http请求

一、准备 postman:一个接口测试工具创建一个新工程选择web不会的请看Spring Boot快速入门(一):Hello Spring Boot 二、开始 新建java类RequestCtrl1.添加一个all方法,使用@RequestMapping注解,可以处理所有的http请求   @RestController//这是一个控制...

2018-01-14 22:02:24 736

原创 升级node与npm

升级node一、安装 n 工具,这个工具的名称很短,方便输入npm install -g n二、升级node至长期版或者最新版上图为中文官网的截图 n lts //升级到LTS版本,即上图的8.9.4n stable //升级到最新稳定版,即上图的9.4.0 三、n工具其它的一些命令n ...

2018-01-14 18:34:05 341

原创 Spring Boot快速入门(一): Hello Spring Boot

一、准备工作java环境:jdk 1.8开发工具:idea二、创建项目打开idea   点击Create New Project选择Spring Initializr,NextGroup.Artifact = 你的包名type:个人喜欢选择gradle,默认的maven也可以Next选择webNext选择工程目录F...

2018-01-14 11:29:32 230

空空如也

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

TA关注的人

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