1、已知Hashtable支持get(key),set(key,value)和delete(key)的操作,请使用该Hashtable作为存储,实现一个栈(Stack),支持入栈(push)和出栈(pop)的操作。
1)描述思路(2分)
2)请用伪码实现入栈和出栈的操作(8分)
2、给定一个排好序的无重复整数数组,请找出其中的最长连续子数组。例如:[1,3,4,5,6,9,10],则最长连续子数组是[3,4,5,6,]。
1)描述思路(2分)
2)请用你熟悉的编程语言编码实现(8分)
3、给定一个无需无重复整数数组A,任意给定整数b,求b在A中的位次。举例:A=[3,2,4,1,5],b=4,则b在A中的位次为2,即b是A中的第2大元素。
1)描述思路(2分)
2)请用你熟悉的编程语言编码实现(8分)
4、给定两个已经从小到大排好序的整数数组A和B,请实现函数找到A和B中第k大元素。举例:A=[1,2,3],B=[2,4,6],当k=1,返回6,k=2,返回4。
1)描述思路(2分)
2)请用你熟悉的编程语言编码实现(8分)
5、任意给定英文单词,输出该单词中字母的所有可能排列组合,且不能出现重复。例如:输入eat,则所有排列为6个:eta,act,tea,ate,tae,eat,需要注意的是单词中可能存在重复字母。例如:输入see,则所有可能排列只是3个:see,ese,ees。
1)描述思路(2分)
2)请用你熟悉的编程语言编码实现(8分)
6、美团的技术委员会由各个部门推选的高级工程师组成,名额N人。每年会有M(M<N)名高工换届退出,因此又会从各部门推选出M个从未在委员会的高工加入。请问技术委员会的高工的平均服务年限是多少?要求写出详细推导过程(不需要写程序),直接给出最终答案的记0分。
7、给定一个非负整数数组,其中的每个数表示可以向右移动的最大步数(0表示不可移动),从第一个数开始向右跳转,找出达到最后一个数最少需要几次跳转。例如:数组[4,6,2,5,1,3,0,4,8,1,5,3,6],返回:3(4->5->8->6)
1)描述思路(2分)
2)请用你熟悉的编程语言编码实现(8分)
8、求数组中最长的严格递增子序列的长度。所谓严格递增是指数组中任意元素严格大于其前面的所有元素。举例:给定数组[1,-1,2,-2,3],则最长严格递增子序列为[1,2,3]和[-1,2,3],所以其最长的严格递增子序列长度为3。
1)描述思路(2分)
2)请用你熟悉的编程语言编码实现(8分)