摘要: 原型模式简单说就是copy一遍实例,使用copy来的实例进行操作,而不改变原实例。涉及到浅克隆和深克隆。 1. 浅克隆: 实现Java提供的Cloneable接口。重写 Object clone方法 return super.clone();调用时就为浅克隆。 2. 深克隆: 可以使用反射进行深克隆 阅读全文
posted @ 2018-10-26 15:06 天才小彩笔i 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 单例模式初衷是为了使资源能够共享,只需要赋值或初始化一次,大家都能够重复利用。 饿汉模式: 在类加载的时候就立即初始化并且创建单例对象。优点是没有加任何锁,执行效率高,绝对线程安全。在用户体验上来说比懒汉模式更好,缺点是一定程度上浪费内存。 懒汉模式: 在需要使用的时候才初始化,不浪费资源,但是线程 阅读全文
posted @ 2018-10-26 14:58 天才小彩笔i 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 1. 开闭原则 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行扩展的时候,不能去修改原有的代码,实现一个热插拔的效果。使用接口和抽象类,达到程序扩展性好,易于维护和升级的效果。 2. 里氏替换原则 里氏替换原则是面向对象思想的基本原则之一,其表达的意思是只要父类能出现的地方,子类一定可以出现。 阅读全文
posted @ 2018-10-26 14:22 天才小彩笔i 阅读(106) 评论(0) 推荐(0) 编辑
摘要: Given two integers dividend and divisor, divide two integers without using multiplication, division and mod operator. Return the quotient after dividi 阅读全文
posted @ 2018-10-09 09:50 天才小彩笔i 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 给定一个字符串,找出不含有重复字符的最长子串的长度。 示例: 输入: "abcabcbb" 输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 3。 解法: 1.利用队列先进先出的特性。重复的元素弹出。最后算队列的长度就是字符串最大长度。 2.都存入Map或者Set集合中,用一个数字当 阅读全文
posted @ 2018-09-12 10:23 天才小彩笔i 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 4 阅读全文
posted @ 2018-09-11 22:13 天才小彩笔i 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。 找到所有出现两次的元素。 你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗? 示例: 输入: [4,3,2,7,8,2,3,1] 输出: [2,3] 解法: 1. O(N^ 阅读全文
posted @ 2018-09-11 17:42 天才小彩笔i 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必须是 O 阅读全文
posted @ 2018-09-11 16:34 天才小彩笔i 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例: 给定 nums = [0,0,1,1,1,1,2,3,3], 函数应返回新长度 length = 阅读全文
posted @ 2018-09-11 14:47 天才小彩笔i 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 给定一个包含 n 个整数的数组 nums 和一个目标值 target, 判断 nums 中是否存在四个元素 a,b,c 和 d , 使得 a + b + c + d 的值与 target 相等? 找出所有满足条件且不重复的四元组。 示例: 给定数组 nums = [1, 0, -1, 0, -2, 阅读全文
posted @ 2018-09-11 12:54 天才小彩笔i 阅读(113) 评论(0) 推荐(0) 编辑