自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

拉丁解牛技术专栏

书写有气质的代码,做有灵魂的设计。

  • 博客(32)
  • 资源 (14)
  • 收藏
  • 关注

原创 AWS之EMR Job的几种提交方式

AWS包装改进开源Hadoop的MapReduce,自己搞了一个EMR,不过基本完全兼容我们开源的Hadoop。   EMR的几种提交job方式:        1、可以通过add step,通过设置job flow,将多个job,放到一个flow中串行执行。适合大批量job提交。        2、可以通过console,添加job jar,执行,其实和hadoop jar 执行一样。...

2018-08-31 18:14:07 1610

原创 AWS之SQS消息队列使用经验

1、问:什么是可见性超时?      可见性超时是一个时段,在这个时段内,Amazon SQS 会阻止其他处理组件接收和处理某条消息。有关更多信息,请参阅 Amazon SQS 开发人员指南中的可见性超时。       这个特性,在工作当中,我们可以提高基于sqs消息服务的并发能力。比如有1000个sqs client在监听同一个消息队列,因为每个消息内容不一样,而且可见期间,只能被一个c...

2018-08-31 18:08:23 13250

原创 组合总和 Combination Sum II-算法详解含代码注释

       给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。 示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集...

2018-08-31 17:59:07 1167 1

原创 组合总和-java解题思路报告

给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解...

2018-08-31 15:51:44 827

原创 删除排序数组中的重复项-java 面试 双指针法高效实现

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

2018-08-31 14:01:24 420

原创 presto基本原理和架构图 简析

一、体系结构       presto是facebook开源的查询分析引擎,在国内是京东用的比较溜和成熟。presto数据处理能力到达PB级别,支持查询数据源有hive、kafka、cassandra、redis、mongodb、sql server等,在工作应用当中,我们发现presto的查询性能比hive要高40%以上。presto的结构式master+slaver模式,具体组成如下:...

2018-08-31 11:48:13 4104

原创 移除数组重复元素-leetcode非常简单的一个双指针移除算法

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

2018-08-31 10:46:55 739

原创 spark 按某几列distinct去重、topN、窗口计算的应用

        在spark计算当中,我们日常有些简单需求,比如去重,比如有四列(appid、date、type、platform),我们只需要对appid,date进行去重,另外两列不关注。在spark中,distinct会对所有列执行去重操作,两行比较,只要有个一列有差异,就不算重复。        要解决,只对某几列进行去重,可以使用Top N 的思路,也就是先分组,分组后,我们只取ro...

2018-08-30 15:24:49 8154

原创 有效括号-面试算法leetcode-java

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

2018-08-30 10:45:32 410

原创 leetcode合并区间- 附有算法详细解析注释

给出一个区间的集合,请合并所有重叠的区间。示例 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] 可被视为重叠区间。...

2018-08-29 18:16:32 1383

原创 并两个有序链表-链表合并常用解法

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4/** * 合并两个有序链表 * 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 * 示例: * ...

2018-08-29 13:59:57 535 1

原创 搜索插入位置-leetcode简单高效的二分查找算法

       给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1     以下code使用两种方式实现,时间复杂度为O(n) 和O(logn)。代码有详细注释,很好...

2018-08-29 11:36:23 1490 1

原创 最接近的三数之和-附详细算法解析

    这个题和求三数之和类似,可以参考本博客该题【双】解法 三数之和-leetcode两种高效解法         给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1....

2018-08-28 18:20:54 347

原创 三数之和-leetcode 简单高效O(N`2)复杂度【两种】解法

让算法变得人人能看懂。最近写了系列leetcode和hackerrank的算法解答。/** * 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 * 注意:答案中不可以包含重复的三元组。 * 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], * ...

2018-08-28 16:43:00 1068

原创 最大子序和-leetcode O(N)复杂度里最简单高效的解法

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。欢迎关注一起交流学习,个人 github: https://github.com/luoqifei 示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解答:     1、子序和最大,也就...

2018-08-28 11:17:56 336

原创 求最长回文字串,并打印-leetcode题详解过程

同样采用中心扩展法,思路如下图:首先,填充字符串变成数组,然后以某个基准元素,求得它的最大回文子串,记录基准元素的索引pointI,以及回文长度maxLength也就是填充后的字符数组,求得最大回文子串的step步长。通过pointI和maxLength就可以在填充后的字符数组里找到这个字串了。 /** * 返回一个字符串最长回文字串部分 * @param s...

2018-08-27 16:23:18 303

原创 无重复字符的最长子串-LeetCode算法详解

给定一个字符串,找出不含有重复字符的最长子串的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 3核心解法:     定义一个滑动窗口,窗口内无重复元素(所以需要定义个set集合);窗口的滑动有左右边界(所以定义索引left、right)。窗口的首发移动是右边界,当窗口遇到有重复元素,左边界++,且需要移除set该...

2018-08-27 15:05:06 474

原创 leetcode 两数之和

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解法: 该实现时间复杂度是O(N),空间复杂度为O(N).     *依赖hashM...

2018-08-27 13:33:53 333

原创 两数相加-一看就懂,非常详细code解法解释

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

2018-08-27 11:41:34 460

原创 判断一个整数是否为素数算法

素数:n%i==0,那就可以判断n是非素数。算法的复杂度,依赖i的取值范围,如果是2~n那就是O(N)。如果是2~sqrt(N),复杂度就是O(sqrt(N))。 package dayscode;import java.util.Scanner;/** * 判断是否为素数,也就是一个整数只能被1和自己整除。1不是素数 */public class Prime { ...

2018-08-22 17:45:16 4181

原创 删除单链表重复节点的实现

 * 删除单链表的重复元素 * 比如,1,2,3,3,5,2,4 * 删除后,就是1,2,3,5,4 代码:package dayscode;import java.util.HashSet;import java.util.Scanner;import java.util.Set;/** * 删除单链表的重复元素 * 比如,1,2,3,3,5,2,4 * 删除后,...

2018-08-22 15:18:30 766

原创 有序二叉树层次遍历

   遍历有序二叉树,顺序输出每一层node 的data。  比如二叉树             6    3             91     5     7         10打印输出就是,6,3,9,1,5,7,10。这个利用队列实现非常高效。package dayscode;import java.util.LinkedList;import j...

2018-08-22 11:59:44 259

原创 新建有序二叉树BST、求树的最大深度或高度

    新建有序二叉树,left node 小于等于root,right node 大于等于root。并求二叉树的树高。package dayscode;import java.util.Scanner;/** * 插入new node到有序二叉树,获取二叉树最大树高 */public class BSTHeight { static class Node { ...

2018-08-22 11:16:18 1785

原创 mongodb 3.2.2 版本批量写入或更新

   mongodb java driver 从3.0开始,支持同步、异步写入更新。这两个driver使用的包不一样。比如异步的需要用async包。如下:<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-async</art...

2018-08-17 11:27:51 2729

原创 求最长回文子串的长度

采用中心扩展法实现。将字符串变成字符数组,同时对数组先填充,每个字符前后都必须有特殊符号。这样填充后的字符数组就是奇数。利用中心扩展法很容易得到每个回文字符串的长度,最后取最大回文长度就行。中心扩展法示例-摘自https://blog.csdn.net/u013309870/article/details/70742315:package algorithms;public ...

2018-08-14 19:04:09 1339

原创 kafka 生产者源码分析(一)- 生产者发送消息过程

基于kafka 0.10版本源码分析   早期kafka 0.8.22,0.9.X 版本kafka 生产者消费者服务端都是用scala编写。而且放在cores包下,新版本的客户端使用java实现,放在clients包下。     新的生产者客户端是一个进程,使用KafkaProducer对象实例化。这个生产者客户端,不直接发送消息给服务端,而是使用了一个名叫 RecordAccumulat...

2018-08-14 11:40:24 1272

转载 Spark 中的序列化陷阱

转自:https://segmentfault.com/a/1190000012353884Spark 的代码分为 Driver 端执行的部分和 Executor 端执行的部分,Driver 端分发任务的同时,会通过序列化传送 Executor 需要的对象,由于 Java 序列化的一些特性,初学者在使用时容易碰到一些陷阱。陷阱1: 没有序列化最常见的一个错误就是传递的类不可序列化,如下...

2018-08-14 10:56:50 1845 1

原创 spring cloud 微服务增加权限过滤,所有接口被accept denied问题

     在某个微服务模块增加了user jwt token验证,部署上线到spring cloud后,导致该微服务模块所有接口无法访问。通过debug发现,request header里带的token变没了。     查阅资料发现,是spring cloud zuul组件默认配置是过滤了所有请求header的信息,导致前端发起的request请求header信息丢失。     解决:...

2018-08-14 10:43:55 1220

原创 spark map操作使用类中定义的方法、变量出现NullpointException或Task not serializable问题解决

      spark 计算应用,我们经常使用map、filter、flatmap转换计算,但spark standalone 模式或其他yarn、mesos分布式计算,若要引用其他对象或共享变量,需要用支持Serializable序列化,或使用broadcast定义变量,这样在spark task并发下就可以在多个不同节点的excutor执行正确运算。      在local 模式,map计...

2018-08-14 10:37:57 1931

原创 生成窗口最大值数组

    有一个长度为n的整型数组arr 和一个大小为w 的窗口从数组的最左边滑到最右边,窗口每次向右滑动一个位置,求每个窗口所含arr元素的最大值。 * 比如4,5,1,6,7数组,w=3,那么结果就是5,6,7* 第一个窗口就是,4,5,1,最大值就是5* 第二个窗口就是5,1,6,最大值是6* 第三个窗口就是1,6,7,最大值就是7* 解法有很多种,比如时间复杂度为O(n*w),遍...

2018-08-12 19:00:20 228

原创 ip地址解析成国家、城市、iso code或者按语言获取城市名

通过使用免费geoip库,解析ip。github完整项目代码:https://github.com/luoqifei/user-location/tree/master/geoipdemo学习GeoLite2 Free Downloadable Databases api :https://dev.maxmind.com/geoip/geoip2/geolite2/java实现如下:...

2018-08-09 18:10:56 3195

原创 Minimum Swaps 最小次数交换使乱序序列变成递增序列

题目:      给一个乱序的整型数组,元素值范围是1~100000。比如乱序数组[1,3,2],经过一次交换(3,2),就可以变成有序序列[1,2,3]。比如给序列[1,3,5,2,4,6,8],经过交换(3,2)变成[1,2,5,3,4,6,8],再交换(5,4)变成[1,2,4,3,5,6,8],再交换(3,5)即可变成有序递增序列[1,2,3,4,5,6,8]。实现算法和代码讲...

2018-08-08 18:04:59 2317

docker全部学习资料个人总结

1、host模式 docker run --net=host就可以指定了这种网络模式。这种模式,容器直接复用了宿主机的ip,并且使用了宿主机的所有网卡,也就是在容器里ifconfig查看到的内容和宿主机查看的一模一样。 比如: docker run -it --rm --net=host sentos:lqf bash 这个命令的--rm意思就是,这个容器退出后,该容器就自动被删除。 2、container模式,就是和其他容器使用相同的网络 docker run -ti --net=container:另一个容器的id 镜像名 bash 3、none模式,完全没有网络的模式

2017-09-07

hive学习资料大全 实战优化资源

hive被大多数企业使用,学习它,利于自己掌握企业所使用的技术,这里从安装使用到概念、原理及如何使用遇到的问题,来讲解hive,希望对大家有所帮助。 此篇内容较多: 看完之后需要达到的目标 1.hive是什么 2.明白hive的原理 3.会使用hive 4.会使用hive编程

2017-09-07

maven权威指南,最全资料

执行指定测试类,mvn -Dtest=指定类名 test 执行指定集成测试类,mvn -Dintegration-test=指定类名 integration-test 集成测试,需要先先配置failsafe

2017-09-07

power mockito学习资料

PowerMock是一个扩展了其它如EasyMock等mock框架的、功能更加强大的框架。PowerMock使用一个自定义类加载器和字节码操作来模拟静态方法,构造函数,final类和方法,私有方法,去除静态初始化器等等。通过使用自定义的类加载器,简化采用的IDE或持续集成服务器不需要做任何改变。熟悉PowerMock支持的mock框架的开发人员会发现PowerMock很容易使用,因为对于静态方法和构造器来说,整个的期望API是一样的。PowerMock旨在用少量的方法和注解扩展现有的API来实现额外的功能。

2017-09-07

activeMq资料学习

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。

2017-09-07

python学习笔记

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。 Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。 像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。

2017-09-07

shell命令常用shell命令

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。

2017-09-07

storm学习资料

storm学习进阶资料,适合入门学习,进阶实操。低延迟。都说了是实时计算系统了,延迟是一定要低的。 高性能。性能不高就是浪费机器,浪费机器是要受批评的哦。 分布式。系统都是为应用场景而生的,如果你的应用场景、你的数据和计算单机就能搞定,那么不用考虑这些复杂的问题了。我们所说的是单机搞不定的情况。 可扩展。伴随着业务的发展,我们的数据量、计算量可能会越来越大,所以希望这个系统是可扩展的。 容错。这是分布式系统中通用问题。一个节点挂了不能影响我的应用。

2017-09-07

maven nexus私服

官网下载不了。上传出来,让大家一起用。

2016-03-18

在线通讯,多人聊天,在线客服弹窗源码

这是一个在线通讯,也可以当作在线客服,它有两部分组成。其中,有qq在线客服弹窗的源码,js写的。另一个是在线客服代码。直接在myeclipe就建一个DWRconet工程,附加导入进来,即可运行。希望你们可以好好学习

2012-07-04

编译原理-实验4

编译原理实验6.2 目标代码生成-四元式,的目标代码及运行结果截图。还有个人的心得体会。

2012-05-23

空空如也

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

TA关注的人

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