剑指offer
刘凯宇
这个作者很懒,什么都没留下…
展开
-
栈和队列的转换
一、栈和队列 栈和队列是非常常见的数据结构,都是限制存取点的线性结构,在计算机领域中被广泛应用,比如操作系统会给每个线程创建一个栈用来存储函数调用时各个函数的参数、返回地址及临时变量等。栈的特点是先进先出,即最后被压入栈的元素会第一个被弹出,栈与递归联系紧密。队列的特点是先入先出,只允许在表的一端进行插入,在另一端删除元素,队列主要应用于图的遍历。 虽然栈和队列是特点针锋相对原创 2016-01-18 22:18:02 · 1288 阅读 · 0 评论 -
剑指offer面试题八:旋转数组的最小数字
一,题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 二,分析 最容易想到的方法是从头到尾遍历一遍,时间复杂度为O(n)。 但是我们并没有利用旋转数组本身的性质,发现原数组可以划分为两个排序的子数组,而且前面原创 2016-01-23 19:25:08 · 286 阅读 · 0 评论 -
剑指offer,面试题一:赋值运算符函数
赋值运算符“=”的重载 对任一类X,如果没有用户自定义的赋值运算符函数,那么系统将自动地为其生成一个默认的赋值运算符函数,但是在某些特殊情况下,如类中有指针类型时,使用默认赋值运算符函数会产生错误,也就是所谓的指针悬挂问题(对同一内存空间的两次释放)。 我们用深层复制解决指针悬挂问题,必须显式定义一个自己的赋值运算符重载函数,使之不但复制数据成员,而且为对象分配了各自的内存空间,这就是原创 2015-12-08 20:05:51 · 365 阅读 · 0 评论