面试
剑决浮云气
事了拂衣去,深藏功与名
展开
-
相邻两数的最大差值
给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序。解题1.已知数组长度为 N2.遍历数组,找到整个数组中元素的最大值 max 和最小值 min3.最小值放入0号桶,最大值放入N+1号桶根据找到的 max 和 min,将数组均匀划分为 n + 1 个范围。4.遍历数组,根据每个数组元素的值,判断需要进入哪个桶,最后找到每个桶中的最大值和最小值。5.遍历数组 用该数组的最小值-前一个非空桶的最大值,更新全局Max(最大差值)设立N+1个桶的原创 2021-01-26 17:13:07 · 423 阅读 · 0 评论 -
固定数组实现一个队列
Start End Size假设固定数组大小为3①start和size之间的约束: 当size为0时,不能取出队头元素,以及出队当size不为0可以②end和size之间的约束:当size小于3时,可以再队尾加入元素,否则不能添加元素注意取余...原创 2021-01-26 17:35:24 · 122 阅读 · 0 评论 -
特殊的栈GetMin
实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。【要求】1.pop、push、getMin操作的时间复杂度都是O(1)。2.设计的栈类型可以使用现成的栈结构。思路用两个栈 一个叫做data栈 正常存放数据 一个叫做Min栈 存放当前栈中的最小值当一个数进来后,先放入data栈然后让该数和Min栈的栈顶比较①若小于栈顶元素,则将该数压入Min栈成为新的栈顶。②若大于栈顶元素,则将栈顶重复压入原创 2021-01-26 17:45:31 · 136 阅读 · 1 评论