热门话题白皮书HR资料
我的算法薄弱,有什么特别好的方法提升呢
2024.07.03

今晚牛课堂再次火热开始,八点正式开始,但是左老师会在7点半左右上线哦,跟大家聊聊人生,面试,是不是很6呢。点击下方阅读原文查看直播!国内顶级大牛为你讲面试中的问题,牛客网请客,真的没sei啦!

另外将从今晚听课并提问的用户中抽取两位幸运用户送上两本《编程之美》



先把今天晚上的题目放出来,点击下方阅读原文查看直播!


题目一
设计一个有getMin功能的栈
【题目】
实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。
【要求】
1.peek、pop、push、getMin操作的时间复杂度都是O(1)。
2.设计的栈类型可以使用现成的栈结构。


题目二
由两个栈组成的队列
【题目】
编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek)。


题目三
由两个队列组成的栈
【题目】
编写一个类,用两个队列实现栈,支持栈的基本操作(push、poll、peek)。


题目四
如何仅用递归函数和栈操作逆序一个栈
【题目】
一个栈依次压入1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1。将这个栈转置后,从栈顶到栈底为1、2、3、4、5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构。



题目四
字符串表达式求值
【题目】
给定一个字符串str,str表示一个表达式,其中只可能有整数、加减乘除符号和左右括号,返回公式的计算结果。
【举例】
str="48*((70-65)-43)+8*1",返回-1816。
str="3+1*4",返回7。
str="3+(1*4)",返回7。
【说明】
1.可以认为给定的字符串一定是正确的表达式,即不需要对str做公式有效性检查。
2.如果是负数,就需要用括号括起来,比如"4*(-3)"。但如果负数作为公式的开头或括号部分的开头,则可以没有括号,比如"-3*4"和"(-3*4)"都是合法的。
3.不用考虑计算过程中会发生溢出的情况。



题目五
生成窗口最大值数组
【题目】
有一个整型数组arr和一个大小为w的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置。
例如,数组为[4,3,5,4,3,3,6,7],窗口大小为3时:

[4  3  5] 4  3  3  6  7 窗口中最大值为5
 4 [3  5  4] 3  3  6  7 窗口中最大值为5
 4  3 [5  4  3] 3  6  7 窗口中最大值为5
 4  3  5 [4  3  3] 6  7 窗口中最大值为4
 4  3  5  4 [3  3  6] 7 窗口中最大值为6
 4  3  5  4  3 [3  6  7] 窗口中最大值为7

如果数组长度为n,窗口大小为w,则一共产生n-w+1个窗口的最大值。

请实现一个函数。
输入:整型数组arr,窗口大小为w。
输出:一个长度为n-w+1的数组res,res[i]表示每一种窗口状态下的最大值。
以本题为例,结果应该返回{5,5,5,4,6,7}。

 

牛客网—程序员必备求职神器


刷真题,练算法,看面经,得内推
www.nowcoder.com
长按二维码,把IT笔试面试题库装进

点击下方阅读原文查看左老师直播,现场火爆,速来围观!!