- 博客(49)
- 收藏
- 关注
原创 MaxArea-最大矩阵
MaxArea-最大矩阵几道最大区域(矩形)相关的题。题目一:container-with-most-waterGiven n non-negative integers a1 , a2 , …, an , where each represents a point at coordinate (i, ai ). n vertical lines are drawn such that ...
2019-08-04 14:31:10
1048
原创 堆排序&快排的Java实现
堆排序的Java实现以从小到大排序为例,堆排主要包括两个过程:1、构建最大堆(以数组为堆的数据结构)2、替换当前堆顶元素和堆尾元素,忽略已经有序的堆尾,重新调整堆,不断重复(其实还是不断get&&remove堆顶最大或最小值放在有序队列中的过程)堆排还是比较简单的,过程可以参考 堆排序算法直接上Java实现代码:public class HeapSort { ...
2019-07-29 15:16:24
285
原创 KMP算法-时间复杂度分析
KMP算法假设m为模式串strM的长度,n为待匹配的字符串strN的长度。KMP的基本过程求模式串strM的next数组遍历比较待匹配的字符串strN(过程=遍历strN+遍历时出现strM[j]的回跳)比较strN[i]、strM[j]时可能出现的情况为:2.1 当前字符匹配时,同时移动 i++,j++2.2 当前字符不匹配,且j=0时,只移动 i++,j=0不动2.3 当前...
2019-07-27 14:58:25
26405
2
原创 Redis Sorted Sets的基本操作,实现原理和应用举例
Redis Sorted Sets基本命令操作zadd key score memberzrem key member --删除指定元素zincrby key incr member --增加incr幅度zrank key member --小到大,下标0开始?zrevrank key member --大到小,下标0开始?zrange key start ...
2019-07-27 12:00:59
911
原创 点分十进制字符串IP和32位int整数互转Java实现
点分十进制字符串IP和32位int整数互转Java实现比较简单基础的题,可记录和回顾基础。IPv4(4*8)和32位的int整数刚好可以11映射,但由于int整数是有符号的,所以不能直接通过划分为四个整数,然后乘以权值(256^(0-3)),再相加来实现互转,该过程会出现int整数溢出。如果是IPv4转换为long型倒不用考虑这个问题。这里直接通过简单的位运算来实现,首先再mark下java...
2019-07-05 17:38:47
1040
转载 【转载】Hive 元数据表简介
Hive 元数据表简介作为Hive基础中的基础,Hive中的元数据表还是很有必要mark一下的,hive元数据可以存在Mysql或者postgreSQL等关系型数据库中。元数据表结构基础,不同的文章博客大多大同小异,基本都贴合官网描述,这里直接Mark一下,方便随手对照查看和平时使用。内容转自hive 元数据表理解,直接对照官网或者参考下面博客:Hive学习之路 (三)Hive元数据信息对...
2019-05-21 10:56:38
311
原创 Dubbo源码分析
Dubbo源码分析其实已经有很多比较好的源码分析博客,结合博客和开发经验再去分析源码,就能对Dubbo的实现有个整体全面的理解,也能深入去深究其中的具体实现细节。Dubbo里主要用到的SPI(Service Provider Interface),Netty(NIO)同步非阻塞多路复用框架,Dubbo线程池,RPC模块,Dubbo Filter,服务注册,服务暴露,服务发现等技术框架和实现过程...
2019-05-15 06:18:48
187
转载 【转载】python requests 高级用法
转自:http://www.myvary.cn/index.php/2017/04/29/python-requests/ 高级用法本篇文档涵盖了 Requests 的一些高级特性。 会话对象会话对象让你能够跨请求保持某些参数。它也会在同一个 Session 实例发出的所有请求之间保持...
2019-05-15 06:04:35
256
转载 【转载】蚁群算法原理及实现
转自:https://blog.csdn.net/kwame211/article/details/80347593 原 蚁群算法原理及Matlab实现 2018年05月17日 10:48:47 DemonHunter211 阅读数:39879 ...
2019-05-15 05:55:01
3768
转载 【转载】随机森林(Random Forest)
转自:http://www.cnblogs.com/maybe2030/p/4585705.html [Machine Learning & Algorithm] 随机森林(Random Forest) 阅读目录1 什么是随机森林?2 随机森林的特点3 随机森林的相关基础知识4 随机森林的生成5 袋外错误率(oob error)6 随机森林工作原理解释...
2019-05-15 05:50:44
373
原创 Redis Client Jedis 源码分析
Redis模型:所采用的是Redis集群(直连型)模型。模型介绍:从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。特点:1、无中心架构(不存在哪个节点影响性能瓶颈),少了 proxy 层。2、数据按照 slot 存储分布在多个节点,节点间数据共享,可动态调整数据分...
2019-05-06 12:17:46
574
原创 recover-binary-search-tree && validate-binary-search-tree
题目:Two elements of a binary search tree (BST) are swapped by mistake.Recover the tree without changing its structure.Note:A solution using O(n ) space is pretty straight forward. Could you devise...
2019-04-11 15:47:02
124
原创 convert-sorted-list-to-binary-search-tree
题目描述:Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.简单的递归实现,dfs递归+快慢指针不同场景中快慢指针方法具体细节可能不同,例如这里:1->2->3,返回的是2,1->2,返回的是2。另外场景...
2019-04-09 14:46:05
119
原创 二叉树求最大值路径
比较简单的二叉树题目,一开始以为需要找从叶节点到另一个叶节点的路径的最大值,但题目实际上说start|end可以是任意节点,实现过程稍微有点不一样,不过思路大致是相同的。题目:Given a binary tree, find the maximum path sum.The path may start and end at any node in the tree.For examp...
2019-04-08 11:27:07
1433
原创 word-ladder
题目描述Given two words (start and end), and a dictionary, find the length of shortest transformation sequence from start to end, such that:Only one letter can be changed at a timeEach intermediate wo...
2019-04-08 07:35:20
240
原创 回文求最小分割数-回文求所有有效分割
回文相关的题目算是算法基础中的基础了。发现工作后如果不是算法岗,算法能力和算法敏感度真的是会下降,平时mark一些经典算法题有利于保持状态。题目一:求sentence中的最小分割数,使得分割后所有字符串都是回文。Given a string s, partition s such that every substring of the partition is a palindrome....
2019-04-08 00:05:28
312
原创 二叉树所有路径的值的和
一道很简单的题目,这里只是对比一下几种思路和做法。题目很简单,就是一颗二叉树由0-9数字构成,求所有root->leaf路径组成的数的总和。Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a number.An example is the root-t...
2019-04-07 23:48:20
1449
原创 求数列中唯一的数--singleNumber
很久没有写关于算法题的了。这里写一下一个非常简单但又很经典的算法题。主要过程是利用bit和数位运算去求数列中的唯一的数。题目一:一个数列中,有一个数只出现了一次,其它数全都出现了两次,求这个数。要求一次遍历,常量extra空间。题目二:一个数列中,有一个数出现了一次或两次,其它数全都出现了三次,求这个数。要求一次遍历,常量extra空间。题目一比较简单,如果一个bit出现两次就归0,...
2019-04-06 14:21:31
418
原创 Java中的Lambda表达式和Stream
Java中的Lambda表达式和Streamlambda表达式的一般语法在该语法基础上可以做进一步的简化(Type1 param1, Type2 param2, ..., TypeN paramN) -> { statment1; statment2; //............. return statmentM;}param1 -> { statm...
2019-02-28 17:22:30
173
原创 ThreadLocal的实现原理和使用场景
ThreadLocal的实现原理和使用场景jdk和一些框架的很多的工具和实现类,如果没有分析过实现原理和理解过源码,很难在开发中有好的实际使用,或者是很难发挥这些工具或实现类的能力,不能灵活地在某些场景时马上想到这些工具和源码实现,或者使用出现问题时再去探究原因再去跟踪源码已为时已晚。 这里说的ThreadLocal就是需要分析源码才能灵活地实际使用。ThreadLocal简介Thread...
2019-02-27 17:21:21
1386
原创 匿名内部类访问的局部变量用final修饰
以前开发中一直会把匿名内部类访问的局部变量用final修饰。最近开发中发现jdk8中其实可以去除final,编译器自动做了编译优化自动添加final修饰符。确实算是非常后知后觉了。。首先回顾下为什么要添加final:用final修饰实际上就是为了保护数据的一致性。这里所说的数据一致性,对引用变量来说是引用地址的一致性,对基本类型来说就是值的一致性。如果局部变量发生变化后,匿名内部类是不知...
2019-02-25 20:21:29
301
原创 Java代理模式详解
Java中代理模式有着非常广泛的场景,包括jdk源码中和一些组件框架如Spring(如应用在aop,Spring Data,swagger中)的应用。动态代理的主要实现有JDK的Proxy动态代理和CGLIB动态代理。下面是代理模式简单而又清晰的描述(源自java动态代理):代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消...
2019-02-25 00:41:28
176
原创 Spring Data使用基础
最近发现一篇比较全面生动的介绍Spring Data的博文。结合开发中Mybatis、Hibernate、Druid等的使用,刚好加深了对数据库相关的对象管理和ORM的理解,很好的做了基础总结。手把手教你如何玩转Spring Data前导博文:手把手教你如何玩转插件:通用Mapper和Mybatis generator...
2019-02-24 23:41:31
122
原创 设计模式总结
设计模式总结是时候对设计模式做一下总结了。结合开发中的经验,会对23种设计模式中常用的设计模式进行一下说明举例,其余的也会在后面加深理解和增加实际使用经验后进行补充。设计模式简介GOF提出的设计模式主要是基于以下的面向对象设计原则。对接口编程而不是对实现编程。优先使用对象组合而不是继承。模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Struc...
2019-02-14 22:57:13
143
原创 String字符串常量池对象和引用
String字符串常量池对象和引用众所周知,jdk1.7中已经把字符串常量池从永久代中剥离出来,存放在堆空间中。但是字符串常量池在堆中是怎样维护的,常量池中存的究竟是String对象的引用还是String对象?我们都知道类似String str="xxx"和String str=new String("xxx")的创建过程是不一样的,引用比较也会有所差异。下面是结合jmap -histo ...
2019-01-27 03:23:51
1693
2
原创 jmap -histo PID日志分析
基础jmap -histo PID日志分析待补充java version - jdk1.8其中需要关注的几个类对象[C is a char[] — 跟jdk 1.8 String相关(final) char[]-jdk8 -> byte[]-jdk9[S is a short[][I is a int[][B is a byte[][I is a int[]jav...
2019-01-25 22:43:21
1522
原创 GC日志分析
最简单进程jmap -histo PID分析待补充java version - jdk1.8其中需要关注的几个类对象[C is a char[] 跟String相关,final char[]-jdk8 / byte[]-jdk9[S is a short[][I is a int[][B is a byte[][I is a int[]java.lang.Class - ...
2019-01-25 18:04:13
740
原创 Spring Boot基础
Spring的主要益处之一是简化Java开发。主要通过以下方面来实现:激发POJO的潜能依赖注入应用切面使用模板消除样板式代码每一部分都在Spring新版本中不断优化,使得层次更清楚而且还能适配各种使用场景。新版本不断提高JavaConfig的配置能力,增加各种注解的使用。SpringBoot没有引入新的特性,但是更大地简化了Java的开发,减少了很多业务不相关的固定化配置。在微服...
2019-01-24 07:18:40
216
原创 简单shell脚本实现每分钟线程快照
简单shell脚本实现每分钟线程快照简单shell脚本实现周期打印线程快照#!/bin/bashlog_file="/home/fimas/FIMAS/jstacklogfile/mainlog"function log_echo{ typeset log_message=$1 typeset log_date=$(date +"%Y-%m-%d %H:%M:%S")...
2019-01-20 08:39:38
707
原创 linux下抓包工具tcpdump详解
参考https://blog.csdn.net/gzh0222/article/details/8239196https://www.cnblogs.com/Jtianlin/p/4330723.html简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送...
2019-01-20 03:09:22
163
原创 Python面向对象详解
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。能正确理解解释型、面向对象、动态这三个特性很重要,能更好地编写层次分明、高效简洁的Python代码,能更好地使用Python的能力。这里对Python的面向对象特性基础进行简单总结记录。详细内容待补充。...
2019-01-17 16:20:45
218
原创 python参数
python *与**python中,在形参前面加上“*”与“**”,称为加“*”时,函数可接受任意多个参数,全部放入一个元祖中加“**”时,函数接受参数时,返回为字典def F(*args): print(args)F(123,"456")# (123, '456')def F(**kwargs): print(kwargs)F(k1=123,k2="45...
2019-01-17 11:26:17
210
原创 Python基础—pdb调试
使用 pdb 进行调试pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。pdb 提供了一些常用的调试命令,详情见表 1。命令解释break 或 b 设置断点设置断点continue 或 c继续执行程序list 或 l查...
2019-01-17 10:08:25
255
转载 Kafka的消息格式
Kafka的消息格式 转自https://www.cnblogs.com/devos/p/5100611.html Commit LogKafka储存消息的文件被它叫做log,按照Kafka文档的说法是:Each partition is an ordered, immutable sequence of messages that is cont...
2018-12-18 17:42:34
778
原创 linux基本命令
小白基础待整理nohup sh run_fda.sh DomB2TAddSpecialTicketOrderSuccCount_1d_vzym >/dev/null 2>&1 &kill -9 进程号find / -name tomcat -type d | morefind . -maxdepth 1 -name “@*”查找当前目录下以@开头的文件或者目录...
2018-12-18 12:29:23
262
原创 vim&git基本命令
待整理vim基本命令gU (变大写)gu (变小写)ctrl+r 反撤销ctrl+r 反撤销按u是撤销 (ctrl+z)在vim file1之后, 可 :sp file2添加窗口(上下,:split file2) 或者 :vs file2(左右 :vsplit file2) 或者:e file2(单纯打开文件)在 vim file1 file2之后::n 下一个文件 ...
2018-12-18 12:25:44
682
转载 Markdown基础语法总结
Markdown基础语法总结1. 标题类Setext– This is an H1– This is an H2Code: This is an H1 ==== This is an H2 ----备注:任何数量的=和-都可以有效果=表示最高阶标题,-表示第二阶标题atx形式This is an H2This is an H3This is an H4```C...
2018-12-18 11:12:36
521
原创 静态内部类实现单例模式
StaticInnerClass静态内部类的外部调用静态内部类可以直接创建对象new B.C();如果内部类不是静态的,那就得这样B b = new B();B.C c = b.new C();静态内部类来实现"延时加载"的线程安全的单例模式单例模式分为饿汉式、懒汉式,其中懒汉式涉及到多线程安全问题,解决方法有加同步锁synchronized,双重检查(避免对除第一次...
2018-12-18 11:08:30
9251
原创 单词博弈
单词博弈Wait to Finish题目甲乙两个人用一个英语单词玩游戏。两个人轮流进行,每个人每次从中删掉任意一个字母,如果剩余的字母序列是严格单调递增的(按字典序a < b < c <….输入说明1. 输入: 一连串英文小写字母,长度不超过15,保证最开始的状态不是一个严格单增的序列。 2. 输出:1表示甲可以赢,0表示甲不能赢。测试用例1. 输入 bad, ...
2018-12-18 10:43:31
306
原创 2017微软秋季校园招聘在线编程笔试 题目2 Composition
http://hihocoder.com/contest/mstest2016oct/problem/2一开始N*N一直超时,觉得不应该,然后java换成C++写了一下,还是TLE。各种地方改了一下,时间花了很多但依然还是大写的TLE。后来想了一下,改成26*N总该可以了吧,然后ac了题目2 : Composition时间限制:10000ms单点时限
2016-10-10 22:25:37
1027
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人