自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 搬家 to http://www.cnblogs.com/mengyou0304/

http://www.cnblogs.com/mengyou0304/csdn的markDown 支持太烂了,完全没有可读性

2015-08-26 11:11:19 511

原创 Kafka 新版Producer Java版代码阅读

Kafka Producer 代码阅读Kafka在0.8.2.1出了新版Producer,支持ack(仅Java版,因为通过JavaClient实现的)。因此对代码进行了简单阅读,并记录如下:接口如下:public Future<RecordMetadata> send(ProducerRecord<K,V> record, Callback callback) 封装一个Record之后,每次调用

2015-08-24 20:34:36 3572

翻译 Borg论文翻译 以及部分理解

Borg论文翻译及理解1. AbstractGoogle的borg使用大量机器支持着数千个应用的10W个作业,其中部分单个集群规模超过万台机器。其通过Adminition controlTask-packingOver-commitmentMachine sharing with process level isolation提供Declarative job specification

2015-08-17 20:26:11 742

翻译 Heron简要翻译&&阅读笔记

Storm系统的问题1. worker日志混乱,如果一个bolt日志过大,会冲掉其他bolt的日志2. worker之间因为没有资源隔离,因此会出现不确定的worker间相互影响3. Nimbus单点故障4. 背压(Back-Pressure)问题:receiver无法处理消息时,sender会丢弃消息。这种情况下如果没有ack将无法得知是否所有消息是否被处理,在最极端的情况下,系

2015-07-29 14:55:41 355

原创 Scala初学的几个疑惑

1. ApplyApply简单理解可认为Apply为方法类默认方法的重载以Scala的BigInt为例,调用val v=BigInt("12321")实际调用代码是def apply(x: String, radix: Int): BigInt =new BigInt(new BigInteger(x, radix))另外一个例子写的很好就直接拿

2015-07-22 10:40:46 582

原创 Scala学习资料

系统学习资料: http://twitter.github.io/scala_school/zh_cn/Effective Scala http://twitter.github.io/effectivescala/#FormattingScala学习资料2 http://zh.scala-tour.com/#/overview单章资料: http://blog.csdn.net/mapdi

2015-07-22 10:12:14 331

原创 Lmax.distruptor RingBuffer

Storm以及JStorm都用了distruptor作为线程间交互工具,所以仔细拿来看看吧。 Disruptor有一个bloghttp://code.google.com/p/disruptor/wiki/BlogsAndArticles和一些基本介绍 http://mechanitis.blogspot.com/2011/06/dissecting-disruptor-whats-so-spe

2015-04-24 18:17:55 1084

原创 Intellij mac 快捷键

Eclipse用了6年了转到Intellij还是很不情愿的,但是的确快捷键好用很多,很多功能也不错,的确算是快转过来了。=================Eclipse到Intellij映射=================command D: 变为 command Ycommand 上下:变为commnad shift 上下(注意移动是段移动)command+sh

2015-04-23 17:31:56 365

原创 ReentrantLock &&

先看看基本锁的实现吧,用的AQS,先看看人家的基本实现abstract static class Sync extends AbstractQueuedSynchronizer public void lock() { sync.lock(); }public boolean tryLock() { return sync.nonfairTryAcquire(1)

2015-04-07 10:46:00 306

原创 AbstractQueuedSynchronizer

看锁的实现发现实在看不明白,还是先来看看AQS吧,作者是Doug Lea大神参考文献http://ifeve.com/jdk1-8-abstractquehttp://www.infoq.com/cn/articles/jdk1.8-abstractqueuedsynchronizerhttp://www.infoq.com/cn/articles/java8-abstractqueuedsynch

2015-04-04 12:53:16 352

原创 ReentrantReadWriteLock

参考http://yhjhappy234.blog.163.com/blog/static/3163283220135178183769/ http://developer.51cto.com/art/201103/249288.htm简要介绍分析class CachedData { Object data; volatile boolean cacheValid;

2015-03-24 17:24:22 341

原创 Java中的锁ReentrantLock,condition 与synchronized,volatile

参考文献:http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html锁存在的意义在于保证高并发情况下的正确性。越是粗粒度的锁越容易使用,但性能也越低。Volatile  JDK很早就开始支持的锁,锁住的块仅允许一个线程进入。  Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步

2015-03-22 20:16:03 520

原创 CAP理论举例及说明

面试去一个哥们叫嚣CAP理论有问题,让我给他证明,很丢人

2014-10-09 12:58:02 4325 4

原创 Unique Binary Search Trees II

这个题比想象的要难一点,主要是费劲,寻找一种合适的遍历所有可能结果的方法。没想到我前后相隔两次做居然用了两种截然不同的方法。方法1. 思路比较好想:自顶向下,先定head是什么,根据BST的定义,左边一定比head小,右边一定比head大。那因此可以构成一组画面,一个从1到n排序好的list,先选定任意一个值提起来作为head。当前的状态已经是一组解了。但是没有结束,提起来的hea

2014-04-01 21:39:04 294

原创 BST的后续遍历

真没想到一个非递归中序遍历也能搞死我。我是有多弱啊,更别说后续遍历了。看看人家的代码,那真是八仙过海,各显神通,弱爆了就是我啊就是我方法1: 参考http://blog.csdn.net/wzy_1988/article/details/17072953ArrayList s1(TreeNode root){ ArrayList list=new ArrayList()

2014-03-04 18:32:05 554

原创 Longest Palindromic Substring

public class Solution { public String longestPalindrome(String s) { char[] cc=s.toCharArray(); int[][] dp=new int[cc.length+1][cc.length+1]; int maxlen=0; int maxst

2014-02-22 06:08:00 339

原创 Decode ways

第一编写的:char[] ss; int[] num; int len=0; //1:jump1 //2: jump2 //3: jump 1+2 //-1 00 //0 no jump1 or jump2 public int validate(int p){ if(ss[p]=='0'){ i

2014-02-14 08:52:25 319

原创 砍瓜切菜的第二遍

第二遍再做Leetcode,终于有一种砍瓜切菜的感觉了,看看原来写的烂代码,我感觉我渐渐脱胎换骨了,Google,哥们终于有勇气面对你了!

2014-02-13 20:51:06 382

原创 八皇后位运算解 N-Queen II Leetcode

思路其实还是每使用一位就把横着,和左斜方,右斜方的位站上,但是用位运算就有不一样神韵。先看代码:int num; int upper; public int solve(int n){ upper=(1<<n)-1; dp(0,0,0); return num; } public void dp(int row, int ld,int rd){ System.out

2014-02-12 19:00:54 634

转载 Distinct Subsequences 哥们总算自己写个自底向上的dp解

public class DistinctSubSeq { //long char[] cs; //short char[] ts; public int numDistinct(String S, String T) { cs=S.toCharArray(); ts=T.toCharArray(); int len

2014-01-26 06:35:33 588

原创 渣降临@Palindrome Partitioning II

又是经典DP,又是没做对。挫败上来看错题了,以为是求分割方法,呼呼呼几下算法切出来,结果aaaaaaa那个超长数据集超时,这才看题。兵家大忌!看清题目!!求最小切的次数。我觉的算法题,千万不要一上来就陷入一个局部问题去考虑某某地方怎么优化,而应该是从全局的角度考虑问题的思路,确定复杂度,确定了复杂度,你才能明白哪里是关键,再去有针对性的优化。否则,这边还是O(N

2014-01-21 07:18:29 501

原创 LeeCode 边界条件注意

知道Leetcode为啥AC率都很低么,因为有我这种渣的存在一个Longest Substring Without Repeating Characters提交了八遍才对,答成这样面试官一定会问你为什么不去死?总结一下各种一定要注意的问题,保证以后先自己测过了这些点再说。1. Null 值,空输入,数组里元素过少,少于2,3个一定要想到 要判断。2. 越界问题一定要想好

2014-01-18 08:18:27 541

原创 [LeetCode] 25倍速度被完虐的 Sum3

渣用了两个hash,结果速度是神的25倍渣代码,hash存第三个数字附带统计出现次数,hash结果去重复,附带练了一下qsort所以98行 int[] n; public int partition(int start,int end){ int x=end; int i=start-1; int tmp;

2014-01-18 07:13:53 472

原创 渣中渣的Word ladder 1+2 Leetcode

渣中渣这次只能上IDE了,代码太长了,老有笔误。结果还调试了半天,还超时,最后改了一上午才过,坑爹啊,面试要是面到这个题,哥们就让你们见识见识什么叫翔尿齐飞!996ms险过.......public class Solution { HashSet dictmap; HashSet rSet = new HashSet(); ArrayList> reslist = new Arra

2014-01-17 11:46:24 488

原创 Generate Parentheses 【Leetcode】

哥们存在的意义就是为了衬托神的存在,又一次体现了渣代码和神代码的区别又是无聊记忆搜索dp,懒得写优化的key直接拿中间结果存key了。其实我觉得这个题的关键在于如何抽象这个结果的表示形式,我只想到了用一个二维数组进行存储,2,12,1 表示第一位置上两个左括号两个右括号,第二个位置上一个左一个右。[[]][]还有一种特殊情况,就是2,11,2对应

2014-01-16 17:01:45 384

原创 【DP】 wordbreak2 仿照神的代码

还是看代码有效果,刷LeetCode刷到62了,往前一看发现做过的题都没什么印象。感觉自己到了瓶颈期了,再一味门头刷题已经没有什么进步空间了,因此开始看看别人的代码,所以有了上一篇神代码和渣代码的比较。2是仿照神代码的实现,果然干净整洁了很多。而且一次过所有点。基本就是在1的基础上做了一个direct指向直接后继节点,然后用dfs遍历一下结果ArrayList res=new Ar

2014-01-16 05:33:44 493

原创 【DP经典问题】WordBreak

这个题解法很多,顺便理一下思路DP几步走:1. 写状态转移方程,根据方程就可以得到基本DP方法,注意时间复杂度和空间复杂度的计算。2.很多DP划分方式很多,所以注意使用记忆搜索来优化DP的处理速度。3. 事实上使用DP递归调用仍然使用了大量的存储空间,使用DP自底向上可以实现O(1)存储的实现,但往往那个稍显困难。Word Break这题接法很多,最

2014-01-15 15:31:26 412 1

空空如也

空空如也

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

TA关注的人

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