自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

呼延十

呼延十

  • 博客(97)
  • 收藏
  • 关注

原创 [Vim]部分常用快捷键记录

删除当前行dd跳转至最后一行G移动到行末$移动到单词末尾e撤回上一次操作u复制粘贴y p保存离开ZZ查找某个内容/content之后使用n下一个,N上一个完。ChangeLog2019-01-11 完成以上皆为个人所思所得,如有错误欢迎评论区指正。欢迎转载,烦请署名并保留原文链接。联系邮箱:huyanshi2580@gmail.com更多...

2019-01-12 20:07:40 269

原创 [设计模式]-装饰者模式

一句话总结通过继承自同一父类,来实现给某一个类动态的添加新的职责,原理是每一个装饰者持有被装饰者的实例,并可以用自身替代他.前言本文写于阅读《Head First 设计模式》第三章之后,因此文中举例大部分是"复盘"书中所写,以起到加深理解和记忆的作用.介绍定义装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。...

2019-01-12 19:40:39 254

原创 [设计模式]-策略模式

前言这是我的第一篇读书笔记.今天拿起了《Head First 设计模式》,读完了第一章"设计模式入门",这篇博客用来记录对这一章的理解.首先吹一波这本书,他确实成功的让我没有烦躁,安静的读并且思考了下来.这可能得益于里面大量的插图,以及时不时的提问,让我比较有参与感.此外偶尔会有一些"幽默"的元素穿插在里面,虽然不太好笑,但是总归是一些趣味.第一章主要是引导用户一步一步设计一个简单的系统,...

2019-01-07 00:34:08 957 10

原创 [随缘一题]-LintCode-合并排序数组II

来源lintcode-6.合并排序数组 II描述合并两个排序的整数数组A和B变成一个新的数组。样例给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]解题思路用两个指针指向两个数组,每次取较小的放入结果数组.在某个数组全部加入结果后,将另一个数组的值全部加入结果数组.实现代码public int[] mergeSortedArray(...

2019-01-05 18:24:21 388

原创 [随缘一题]-LintCode-合并两个排序链表

来源:lintcode-165. 合并两个排序链表描述将两个排序链表合并为一个新的排序链表样例给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。解题思路这道题的重点在于链表是已排序的.那么其实可以比较两个链表当前节点的值,哪个值小,就把...

2019-01-05 17:45:11 746 2

原创 [随缘一题]-LintCode-删除排序链表中的重复元素

来源lintcode-删除排序链表中的重复元素描述给定一个排序链表,删除所有重复的元素每个元素只留下一个。样例给出 1->1->2->null,返回 1->2->null给出 1->1->2->3->3->null,返回 1->2->3->null解题思路简单题.如果当前节点的值和下一节点的值相等,...

2019-01-04 00:21:16 375

原创 [随缘一题]-LintCode-雷达监测

来源lintcode-雷达监测描述一个2D平面上有一堆雷达(雷达有x, y坐标,以及能探测到的范围r半径)。现在有一辆小车要从y = 0和y = 1的区间里面通过并且不能被雷达探测到。若被检测到,输出YES,否则输出NO。(可以认为,小车是一条长度为1的线段,沿直线从x = 0 向右前进)雷达数量为n,n <= 1000。雷达的坐标x为非负整数,y为整数,r为正整数。样例给...

2019-01-03 23:51:20 461

原创 [随缘一题]-LintCode-用栈实现队列

来源lintcode-用栈实现队列描述正如标题所述,你需要使用两个栈来实现队列的一些操作。队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。pop和top方法都应该返回第一个元素的值。样例比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2挑战仅使用...

2019-01-03 00:06:02 390

原创 [设计模式]-观察者模式

介绍(以下部分内容来自维基百科)定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这话听着很拗口,其实就是多个对象依赖于一个对象,并按照他的状态变化改变自身.结构主要有四个类:抽象目标类(接口).具体的目标类.抽象的观察者类.具体的观察者类.具体场景及代码演示你现在是一枚老韭菜!还是会写代码的韭菜!(简单易割还长得快)...

2018-12-28 00:43:56 605

原创 [随缘一题]-LintCode-螺旋矩阵

PS本题代码来源于九章算法.来源lintcode-螺旋矩阵描述给出整数 n, 返回一个大小为 n * n 的螺旋矩阵样例给出 n = 3则螺旋矩阵为:[[1,2,3][8,9,4][7,6,5]]给出 n = 5则螺旋矩阵为:[ [1,2,3,4,5] [16,17,18,19,6] [15,24,25,20,7] [14,23,22,21,8] [...

2018-12-27 23:24:05 608

原创 [随缘一题]-LintCode-有效三角形

来源来源:lintcode-有效的三角形描述给出三个整数 a, b, c, 如果它们可以构成三角形,返回 true.样例给定 a = 2, b = 3, c = 4返回 true给定 a = 1, b = 2, c = 3返回 false解题思路不说了…实现代码public boolean isValidTriangle(int a, int b, int c) {...

2018-12-27 22:17:45 577

原创 [随缘一题]-LintCode-平面列表

来源来源:lintcode-平面列表描述给定一个列表,该列表中的每个要素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。样例给定 [1,2,[1,2]],返回 [1,2,1,2]。给定 [4,[3,[2,[1]]]],返回 [4,3,2,1]。挑战请用非递归方法尝试解答这道题。解题思路这道题一看就是用递归解决啦~,好,那我们就用递归.啥玩意你不让用???那...

2018-12-26 10:59:43 776

原创 [随缘一题]排序数组中的单个元素

前言重磅!每日一题系列大改版了!因为我发现每日一题太难了,总会出现一些加班已经很累了(懒得不想动)的时候,而且周末有事多做两道题都叫做同一天的每日一题也让我这个强迫症贼难受.因此![每日一题]系列从今天开始变为[随缘一题]系列!来源:lintcode-排序数组中的单个元素描述给定一个排序数组,只包含整数,其中每个元素出现两次,除了一个出现一次的元素。 找到只出现一次的单个元素。样例...

2018-12-23 18:56:30 589

原创 Vector源码阅读

前言前面已经学习过ArrayList和LinkedList的区别,今天再来学习一下List<E>接口的另一个实现类Vector.Vector 可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。不过,Vector 的大小是可以增加或者减小的,以便适应创建 Vector 后进行添加或者删除操作。Vector与ArrayList没有太大区别,都具有List&l...

2018-12-23 18:17:14 559

原创 Spring-Data-JPA初体验(内含demo)

前言我一直在使用Mybatis作为持久化框架,并且觉得Mybatis十分的不错,足够灵活,虽说需要自己手写sql,但是这也是我觉得的一个优点,直观并且优化方便.但是我觉得JPA规范也有其优点,比如说简单,在一些基本的CRUD操作时,完全无需手写SQL.因此趁着空闲,对Spring Data JPA做一个了解,并简单的写一个Demo来学习使用.定义在本文可能会涉及一下几个概念,这里统一讲一...

2018-12-22 19:18:01 905

原创 [每日一题]-LintCode-寻找树中最左下节点的值

来源lintcode-寻找树中最左下节点的值描述给定一棵二叉树,找到这棵树最中最后一行中最左边的值。样例输入:[2,1,3]输出:1输人:[1,2,3,4,5,6,#,#,7]输出:7解题思路首先这道题一看就是层次遍历,这里帮大家回顾下二叉树的层次遍历.二叉树介绍及其前中后遍历实现.然后这里要求得最左边的值,那么怎么才能知道当前拿到的节点是不是最后一个节点呢?再想一下,...

2018-12-20 00:31:00 1358

原创 布隆过滤器(Bloom Filter)的原理及在推荐去重中的应用

遇到的问题在业务中,我需要给每个用户保存1w条浏览记录,之后每一次的返回值都要和历史记录做一个去重,即保证用户不会重复看到同一篇文章.这个需求有两个比较麻烦的地方:1.空间问题每个用户1w条,10w用户就是10亿条数据,应该保存在哪里呢?Redis?哪里有那么大内存给你用.Hbase?Hbase我不太了解具体原理,据说每次全量查询有点慢啊(后来听大佬说这点数据无压力的).Mysql?...

2018-12-19 00:51:12 3494 1

原创 [每日一题]-LintCode-勒索信

来源lintcode-勒索信描述给定一个任意的表示勒索信内容的字符串,和另一个字符串,表示能从杂志中获取到的所有字符,写一个方法判断能否通过剪下杂志中的字符来构造出这封勒索信,若可以,返回 true;否则返回 false。杂志字符串中的每一个字符仅能在勒索信中使用一次。你可以认为两个字符串都只包含小写字母。样例canConstruct(“a”, “b”) -> falseca...

2018-12-18 23:58:02 1013

原创 Mysql之多种insert语句

在mysql常用命令与数据导入导出中记录过常用的sql语句,其中包括了插入语句.今天单独记录一下mysql的插入语句的更多用法.本文测试使用数据库数据库建表语句及当前的数据:mysql> show create table student;+---------+------------------------------------------------------------...

2018-12-16 20:26:00 2002

原创 LinkedHashMap源码阅读(JDK8)

LInkedHashMap是基于HashMap的,因此如果不太清楚HashMap的实现的话,请先阅读HashMap 源码阅读 我们都知道,HashMap 是无序的,也就是说,遍历时候的顺序与访问的顺序无关.而在一些场景下,我们即需要HashMap的特性,又需要它能够保持一定的顺序呢?JAVA 在 JDK1.4 以后提供了 LinkedHashMap 来帮助我们实现了有序的 HashMap...

2018-12-16 19:41:28 954

原创 MySQL之LOAD DATA

load data很适合用来做数据迁移,在数据量比较大的时候,导出及导入的性能仍然不错.导出数据mysql> select * from student into outfile '/var/lib/mysql-files/ttt.txt';Query OK, 2 rows affected (0.00 sec)mysql>该操作会将所查询的表格中的所有数据写入txt文件...

2018-12-13 23:52:45 3860

原创 MySQL之JOIN

介绍MySQL 中的join可以分为如下三类:INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。语法... FROM table1 INNER|LEFT|RIGHT J...

2018-12-12 19:37:10 165

原创 [每日一题]-LintCode-回文排列2

来源:lintcode-回文排列2描述给定一个字符串s,返回所有回文排列(不重复)。如果没有回文排列,则返回空列表。样例给定s = "aabb", 返回 ["abba","baab"].给定s = "abc", 返回 [].解题思路:这道题在我看来就是回文排列及全排列的组合题.首先,对每个出现的字符计数,判断当前字符传可以是回文序列吗?然后获取回文序列的左半部分(回文序列是对...

2018-12-11 14:27:45 1580

原创 [每日一题]-全排列问题Java实现

来源:经典的全排列问题描述给定一个字符串,输出他的全排列。样例给定"ABC"输出:ABCACBBCABACCABCBA解题思路:这道题是数学中的全排列问题,输出结果的个数为n!.那么怎么获得具体的所有排列呢?对于ABC来说,排列的第一位有三种可能:ABC,当第一位确定之后,第二位有两种可能,第三位只有一种可能.首先确定第一位,可能是3种,分别计算.A---...

2018-12-11 14:16:10 1489

原创 [每日一题]-LintCode-回文排列

来源:lintcode-回文排列描述给定一个字符串,判断字符串是否存在一个排列是回文排列。样例给定s = "code", 返回 False.给定s = "aab", 返回 True.给定s = "carerac", 返回 True.解题思路:千万不要走到用各种数据结构的误区里面去,直接数个数就好.实现代码/** * 回文排列 */public boolean canP...

2018-12-10 20:56:14 1866

原创 常用Linux命令记录

1.ls列出当前目录下的清单.命令格式:ls [选项] [目录名]常用命令:#列出当前目录所有文件,包括.开头的隐藏文件ls -a #列出当前文件的权限文件大小等信息ls -l2.du显示目录或文件的大小命令格式:du [选项][文件]常用命令:# 以K,M,G为单位,提高信息的可读性。du -h# 输出当前目录下各个子目录所使用的空间,可以修改深度设...

2018-12-10 15:33:19 1023

原创 [每日一题]-LintCode-最常公共前缀

来源:lintcode-最常公共前缀描述给k个字符串,求出他们的最长公共前缀(LCP)样例在 "ABCD" "ABEF" 和 "ACEF" 中, LCP 为 "A"在 "ABCDEFG", "ABCEFG", "ABCEFA" 中, LCP 为

2018-12-09 17:57:01 1035

原创 [每日一题]-LintCode-机器人能否返回原点

来源:lintcode-机器人能否返回原点描述最初,机器人位于(0, 0)处。 给定一系列动作,判断该机器人的移动轨迹是否是一个环,这意味着它最终会回到原来的位置。移动的顺序由字符串表示。 每个动作都由一个字符表示。 有效的机器人移动是R(右),L(左),U(上)和D(下)。 输出应该为true或false,表示机器人是否回到原点。样例样例1:输入: "UD"输出: true样...

2018-12-05 20:18:51 1265

原创 mybaits逆向生成工具及JSON生成POJO插件

很多工具都有一个共同点,第一眼看上去总是很麻烦,让人望而生畏,却忽略掉了他能带来的效率的提升,比如:Intellij的数据库连接功能,我用intellij快两年了,今天才第一次使用…所以今天趁着周末,学习几个实用插件.1.MyBatis-Generator这个插件十分的知名,同时也有很多的衍生产品,基本目的是实现,dao层的逆向生成.当你创建完数据库表格后,根据你的数据库表格,自动生成对应...

2018-12-02 22:47:32 1601

原创 MySQL常用命令(二)与常用函数

由于我日常在mac OS 和ubuntu上进行开发,安装Navicat有点麻烦,,,而Navicat是我比较喜欢的图形化界面,因此在纠结一阵之后决定,,就用命令行搞了吧,,也有优势的,你看我这不是记住好多命令了嘛。下面将按照日常使用顺序,介绍一些日常使用的MySQL命令。//登录,在shell中使用mysql -u username -p//显示所有数据库show databases;...

2018-11-29 00:10:44 1087

原创 MySQL常用命令记录与数据导入导出

前一阵在写很多sql及类sql语句,发现自己的记忆力可以说是相当烂了,上午刚查过插入语句怎么写,下午就忘记了需要重新查,,而且隐隐约约的有点强迫症??只要记得不是特别清晰,就需要去重新查,看,记一遍,十分浪费时间,因此在这里将自己用到的sql语句记下来,方便后续的查找!!PS:以个人习惯记录,切勿直接copy执行。文中命令/方法只是本人使用过的一些,不覆盖所有,例如:数据库导入导出还有其他多种方...

2018-11-29 00:09:35 1089

原创 Java8-Date-Time-使用案例

PS:本文的代码保证正确性,原则是:下一次使用时直接copy可用.工作中遇到新的需求会更新此文.对日期及时间的处理,我们都不陌生,但是总会有你不熟悉的新需求产生,毕竟产品经理的奇思妙想是很多的.本文记录日常工作中使用到的获取特殊时间点的一些方式,不一定出厂最优解,但我会努力改进至最优解.时间戳转换为LocalDateTimelong showTime = System.curren...

2018-11-29 00:07:18 1015

原创 [每日一题]-LintCode-投资结果

来源:lintcode-投资结果描述给定一个列表funds表示投资人每次的投资额。现在有三个公司A, B, C,它们的初始资金分别为a,b,c。投资人每次投资时会对当前资金最少的公司进行投资(当有多个公司资金相同时,投资人会对编号最小的公司进行投资)。返回A, B, C三家公司最后的资金。样例给定funds=[1,2,1,3,1,1],a=1,b=2,c=1, 返回[4,5,4]第...

2018-11-28 23:29:52 1057

原创 [每日一题]-LintCode-最少划分子串题解

来源:lintcode-最少划分子串描述给定一个包含n个小写字母的字符串s,要求将字符串划分成若干个连续子串,子串中的字母类型相同,同时子串的字母个数不超过k,输出最少划分的子串数量。样例给定 s = “aabbbc”, k = 2, 返回4 解释: 划分成 "aa", "bb", "b", "c&

2018-11-28 00:05:13 1415

原创 [每日一题]-LintCode-链表翻转题解

来源:lintcode-翻转链表描述翻转一个链表样例给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null挑战在原地一次翻转完成翻转链表是一个很基础的题,同时也是面试中开场常问的题,那么他的难点在哪呢?解题思路我们都知道单链表的数据结

2018-11-27 20:41:54 1148

原创 java8的DateTime API使用详解

java8里面新增了一套处理时间和日期的API,为什么要搞一套全新的API呢,因为原来的java.util.Date以及Calendar实在是太难用了。如果你有过在程序中处理时间的经验你就会知道,在java8以前,处理时间是多么让人痛苦。举个简单的小栗子:如果你需要查询当前周的订单,那么你需要先获取本地时间,然后根据本地时间获取一个Calendar,然后对Calendar进行一些时间上的加减...

2018-11-27 19:51:56 2024 2

原创 MySQL及MyBatis的批量写入功能

在工作中,我们经常需要提供一些批量插入的接口,常见使用场景比如:初始化.这时候如果在程序内部使用循环的方式插入,则会非常的慢,因为MySQL的每一次插入都需要创建连接,关闭连接,性能十分低下.所幸MySQL有提供批量插入的方法,即建立一次数据库连接,将所有数据进行插入.下面记录一下MySQL中的批量插入以及使用MyBatis进行批量插入的一些方法.MySQL的批量插入语法MySQL的批量...

2018-11-25 01:58:59 1507

原创 ArrayList和LinkedList的区别

PS:推荐大家先去了解一下链表这个数据结构。ArrayList和LinkedList可以说是日常业务开发中最常使用的容器类了,同时,他们的区别也是面试高发区,虽然很简单,但是我们总是不能说的完整,今天就通过对他们源码的阅读来进一步加深理解。首先,看他们类的定义可以发现:他们都是实现了List接口,这个接口干了什么呢?这个接口定义了对列表的一些基本操作,如add,contains,ind...

2018-11-25 01:36:40 1072

原创 String-StringBuilder-StringBuffer异同

字符串在编程中使用的非常频繁,同时又是面试中的常见题型,那么我们的对字符串相关类String,StringBuilder,StringBuffer的理解真的正确吗?今天就通过对三个类源码的阅读,来进一步加强理解。目录String概述StringBuilder 和StringBuffer异同性能比较结论扩展(详细源码阅读及方法解析) String概述 ![](http://...

2018-11-25 01:33:39 1171

原创 mysql的权限管理

前言公司的mysql权限管理还算是比较的严格,每个数据库只有与之对应的用户有读写权限,而我在本地启动项目的时候,每次都要修改配置文件中的数据库连接,用户名,密码.太麻烦了.因此我将线上mysql的host映射到127.0.0.1,给本地的mysql添加所有的用户,这样我就可以不用修改配置文件啦!(建议大家也进行权限管理,每个数据库单独账号读写).但是我没有,我直接执行了grant all...

2018-11-23 00:21:52 1058

空空如也

空空如也

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

TA关注的人

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