摘要: 给出一个二维m*n矩阵grid,含有非负整数。找出一条路径从最左上角到右下角,使之经过元素之和最小。假定只能向右或向下移动。 思路: 二维数组path记录以当前位置结束的路径的最小和,比如,path[i][j]代表从grid[0][0]开始到grid[i][j]结束的最小路径和。 程序最后返回pat 阅读全文
posted @ 2017-04-15 23:20 众里寻他壹贰度 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 问题:给出一个数组,求其连续子序列的最大和 阅读全文
posted @ 2017-04-15 21:35 众里寻他壹贰度 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 给出一个数组,找出最少的元素,使得将其删除之后,剩下的元素使递增有序的。 解析: 删除最少的元素,保证剩下的元素使递增有序的。换一句话说,找出最长的递增有序序列。 找出最长递增有序序列有多种方法。在这里,我们除了需要额外一维数组dp记录以及每个元素为结尾的最长子序列的长度以外,还需要一个哈希表,用来 阅读全文
posted @ 2017-04-15 21:09 众里寻他壹贰度 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 单例模式是用来保证这个类在运行期间只会被创建一个类实例,另外,单例模式提供了一个全局唯一访问这个类实例的访问点,就是getInstance方法。 对于单例模式而言,不管采用何种实现方式,它都只是关心类实例的创建问题,不关心具体的业务功能。 第一种方案:懒汉式 懒汉式的类的实例创建是在getInsta 阅读全文
posted @ 2017-04-08 22:58 众里寻他壹贰度 阅读(503) 评论(0) 推荐(0) 编辑
摘要: java虚拟机允许应用程序并发地运行多个线程。在java语言中,多线程的实现一般有以下三种方法: 1)实现Runnable接口,并实现该接口的run()方法 2)继承Thread类,重写run方法 3)实现Callable接口,重写call()方法 Callable对象实际是属于Executor框架 阅读全文
posted @ 2017-04-03 10:26 众里寻他壹贰度 阅读(271) 评论(0) 推荐(0) 编辑
摘要: sleep和wait的区别有: 1,这两个方法来自不同的类分别是Thread和Object 2,最主要是sleep方法没有释放锁,而wait方法释放了锁,使得敏感词线程可以使用同步控制块或者方法。 3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可 阅读全文
posted @ 2017-03-25 12:52 众里寻他壹贰度 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 问题: 返回将一维数组向右旋转K个位置的结果。比如,一维数组{1,2,3,4,5},k=2时,返回结果是{4,5,1,2,3}。要求常数级空间复杂度,允许修改原有数组 看到一个比较巧妙的方法,将数组反转三次,第一次反转整个数组,第二次反转数组的前K个数,第三次反转数组剩下的数。 每次反转的时间为O( 阅读全文
posted @ 2017-03-22 17:15 众里寻他壹贰度 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 有一条楼梯,总共有9级阶梯,从地面上出发,如果每次可以走3级,4级或6级楼梯,问共有几种方案可以走到? 解决方案一: 第一个方法比较简单,很容易想到,就是用深度搜索,我们可以反过来,把情况看出从第9层阶梯走到路面,把所有可以出现的情况都列出来,然后判断是否能到达第9级阶梯,如果可以,就把方案数加一。 阅读全文
posted @ 2017-03-22 15:44 众里寻他壹贰度 阅读(1286) 评论(1) 推荐(1) 编辑
摘要: 面向对象的五大基本原则 单一职责原则(SRP)开放封闭原则(OCP) 里氏替换原则(LSP) 依赖倒置原则(DIP) 接口隔离原则(ISP) 单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内 阅读全文
posted @ 2017-03-21 21:56 众里寻他壹贰度 阅读(138) 评论(0) 推荐(1) 编辑
摘要: 上面代码中Checket构造函数中引用了super();但是super();不是放在构造函数的首位,如果没有放在构造函数第一行的话,那么在super之前的语句,肯定是为了满足自己想要完成某些行为的语句,但是又用了super继承父类的构造方法,那么以前所做的修改就都回到以前,也就是恢复到父类的构造器方 阅读全文
posted @ 2017-03-21 12:50 众里寻他壹贰度 阅读(700) 评论(0) 推荐(0) 编辑