BealPluto
BealPluto
全部文章
题解
归档
标签
去牛客网
登录
/
注册
RealPluto
try everthing
全部文章
/ 题解
(共7篇)
题解 | #和为S的两个数字#
【问题描述】 在有序数组中找出两个数,使得和为给定的数 S。 如果有多对数字的和等于 S,输出两个数的乘积最小的。 【解题思路】 使用双指针,一个指针指向元素较小的值,一个指针指向元素较大的值。 指向较小元素值的指针,从头至尾遍历,指向较大元素的指针从尾到头遍历。 如果两个元素sum == t...
2021-07-27
0
428
题解 | #滑动窗口的最大值#
【问题描述】 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。 例如,如果输入数组 {2, 3, 4, 2, 6, 2, 5, 1} 及滑动窗口的大小 3, 那么一共存在 6 个滑动窗口,他们的最大值分别为 {4, 4, 6, 6, 6, 5}。 无序列表内容 【解题思路】 维护...
2021-07-22
0
347
题解 | #字符流中第一个不重复的字符#
【问题描述】 请实现一个函数用来找出字符流中第一个只出现一次的字符。 例如,当从字符流中只读出前两个字符 "go" 时,第一个只出现一次的字符是 "g"。 当从该字符流中读出前六个字符“google" 时,第一个只出现一次的字符是 "l&...
2021-07-13
0
385
题解 | #栈的压入、弹出序列#
【问题描述】 如何得到一个数据流中的中位数? 如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。 如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 【解题思路】 构建两个堆分别存储中位数两边的值,左边构建为大顶堆,右边构建为小顶堆。 ...
2021-07-13
0
408
题解 | #栈的压入、弹出序列#
【问题描述】 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。 假设压入栈的所有数字均不相等。 无序列表内容 例如序列 1,2,3,4,5 是某栈的压入顺序,序列 4,5,3,2,1 是该压栈序列对应的一个弹出序列, 但 4,3,5,1,2 就不可能是该压栈序列...
2021-07-13
0
458
题解 | #用两个栈实现队列#
【问题描述】 实现一个包含min函数的栈,该方法返回当前栈的最小元素 【解题思路】 使用额外的栈 minStack,栈顶元素为当前栈中的最小值。 在进行入栈 push 和出栈 pop 操作时,同时需要对 minStack 进行入栈和出栈操作, 从而保持 minStack 栈顶元素一直为当前栈中最...
2021-07-10
0
328
题解 | #用两个栈实现队列#
【问题描述】使用两个栈实现队列,完成队列的Push和Pop操作 【解题思路】 in 栈用来处理入栈(push)操作,out 栈用来处理出栈(pop)操作。 一个元素进入 in 栈之后,出栈的顺序被反转。 当元素要出栈时,需要先进入 out 栈,此时元素出栈顺序再一次被反转,因此出栈顺序就和最开始入...
2021-07-10
0
370