02 2014 档案

摘要:动态规划中比较简单的实现动态规划的原理:http://hawstein.com/posts/dp-novice-to-advanced.html,讲解的非常清楚这道题可以参考动态规划的原理,将status[i][j]的值表示为,字符串从i到j的子串是否为回文字符串,其递推公式为,如果s[i]=s[j],status[i][j]=status[i+1][j-1],否则status[i][j]=0;详细的说明和容易出的问题放在代码注释中: 1 public String longestPalindrome(String s) 2 { 3 4 int length ... 阅读全文
posted @ 2014-02-27 09:38 kcrosswind 阅读(399) 评论(0) 推荐(0) 编辑
摘要:初始化默认值:int[] i=new int[3]; -->i[0]==0;int[][] 多维问题 小心溢出 容易把对象造的过大,OutOfMemoryError,Java heap space :对象过于的大了boolean[] b=new boolean[3]; -->b[0]==0; 阅读全文
posted @ 2014-02-27 09:22 kcrosswind 阅读(113) 评论(0) 推荐(0) 编辑
摘要:The string"PAYPALISHIRING"is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H NA P L S I I GY I RAnd then read line by line:"PAHNAPLSIIGYIR"不难,但是要注意时间按复杂度和“zigzag”的定义。zigzag的含义:。应该这样 阅读全文
posted @ 2014-02-26 21:16 kcrosswind 阅读(233) 评论(0) 推荐(0) 编辑
摘要:原理:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html示例:leetcode:Implement strStr() 1 public class Solution { 2 public String strStr(String haystack, String needle) { 3 4 int i = 0; 5 int hlength = haystack.length(); 6 int nlength = ... 阅读全文
posted @ 2014-02-26 15:58 kcrosswind 阅读(686) 评论(0) 推荐(0) 编辑
摘要:个人认为学习一种语言,编程规范可以很好的从使用者的角度学习,因为毕竟很多规范都是有深刻原因的。Google Java编程风格指南作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权:自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0,转载请注明作者及出处。前言这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格。与其它的编程风格指南一样,这里所讨论的不仅 阅读全文
posted @ 2014-02-25 16:39 kcrosswind 阅读(194) 评论(0) 推荐(0) 编辑
摘要:进程是静态的概念线程是cpu运行的单位 阅读全文
posted @ 2014-02-25 09:24 kcrosswind 阅读(83) 评论(0) 推荐(0) 编辑
摘要:观察者模式(发布订阅)本文参考:headfirst设计模式、设计模式、维基百科。 导例:以订阅报纸为例,你在日报社订阅了“日报”,每天日报社印完了报纸(当然这个时间每天是无法十分精确的)就给你送到家(或者送到你家附近的经销点,你下班可以去拿),这就是一个简单的观察者模式,报社和读者是一对多的依赖关系,但是以报纸为信息媒介,二者却互不影响了(报社任何时间可以发布任何信息,只有形式受限——必须印在报纸上;而读者多少如何跟不受影响了),这相当于剥离了依赖关系中的变化部分。 定义:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。这种通知消息的传递可.. 阅读全文
posted @ 2014-02-24 22:32 kcrosswind 阅读(255) 评论(0) 推荐(0) 编辑
摘要:行为模式之一。把方法调用封装起来。command模式将请求封装在对象中,这样它就可作为参数来传递,也可以被存储在历史列表里,或者以其他方式使用。命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。应用:队列管理,日志和事务系统命令可以将运算块打包(一个接收者和一组动作),然后将它传来传去,就像是一般的对象一样。即使在命令对象创建许久之后,运算依然可以被调用。事实上,他甚至可以在不同的线程中被调用。优点:封装了行为的细节,封装了变化的部分,易于回滚,优势明显,还有一点是可以将行为排队代码示例:https://github.com/kcros 阅读全文
posted @ 2014-02-20 22:38 kcrosswind 阅读(147) 评论(0) 推荐(0) 编辑
摘要:Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e.,0 1 2 4 5 6 7might become4 5 6 7 0 1 2).You are given a target value to search. If found in the array return its index, otherwise return -1.You may assume no duplicate exists in the array.编程属于计算机科学,计算机科学的理念有优秀的设计,但是不管是什么 阅读全文
posted @ 2014-02-18 20:50 kcrosswind 阅读(330) 评论(0) 推荐(0) 编辑
摘要:来源于headfirst设计模式单例模式的性能指标:lazy(是否延迟实例化),线程安全一、延迟实例化,同步(synchronized)方法-->由于是单例更需要考虑处理问题需要考虑的同步问题,延迟实例化主要是面向资源敏感的对象 1 public class Singleton { 2 3 ... 阅读全文
posted @ 2014-02-18 09:23 kcrosswind 阅读(231) 评论(0) 推荐(0) 编辑
摘要:"问问题"-->目的:以问问题的方式,希望可以在语言的学习中,独立的全面的了解一块知识.默认“方法”已经了解,本文主要目的介绍所谓的“静态”。一、含义源于语义:static。[参考:http://developer.51cto.com/art/201204/332155.htm]摘要:static语义:static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。static作用:被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共 阅读全文
posted @ 2014-02-17 19:09 kcrosswind 阅读(181) 评论(0) 推荐(0) 编辑