剑指offer
athitera
这个作者很懒,什么都没留下…
展开
-
第二章面试题2:实现单例模式
什么是单例模式 Singleton:保证一个类只有一个实例,且提供一个访问它的全局访问点 为什么需要单例模式 有一些类只需要使用一个实例,如工具箱等 需要实现对唯一实例的受控访问 怎么实现单例模式 要求: 判断对象是否被实例化,若实例化了则直接使用实例 是否实例化应该由该类自己判断,不需要客户判断,不允许其他类实例该类,则需要构造方法私有化 客户通过该类的public方法使用实例...原创 2018-05-09 17:30:56 · 263 阅读 · 0 评论 -
第二章面试题3:数组中重复的数字
题目 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 解题思路 不采用java已有数据结构 对数组排序之后扫描,前后数字相同则为重复。时间复杂度为排序算法的复杂度,最小时...原创 2018-05-09 21:58:10 · 173 阅读 · 0 评论 -
第二章面试题4:二维数组中的查找
题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路 根据已知条件(数组的顺序性)减少判断次数; 数组自带顺序,行最大值,最小值,列最大值,最小值都可确定,而行的最大值是列的最小值,列的最大值是行的最小值,故从右上和左下 public class Soluti...原创 2018-05-16 21:53:08 · 219 阅读 · 0 评论