4123 level
获赞
2
粉丝
1
关注
0
看过 TA
1
浙江大学
2020
Java
IP属地:未知
暂未填写个人简介
私信
关注
2019-09-25 21:53
已编辑
浙江大学 Java
0 点赞 评论 收藏
分享
2019-07-07 11:52
浙江大学 Java
如果分享题目不妥请删掉 今天谷歌NEXT program最后一题,题目大概是: 给出一个int数组,求出每一个元素的后面的元素中比它大且最小的元素。没有写-1。 int[] findNEXT(int[] num) 例如输入为 [11,13,10,5,12,21,3] 输出为 [12,21,12,12,-1,-1] 楼主只能想到要考虑重复……
算法才是灵魂:索引按值排序,维护索引递增栈。时间复杂度O(nlogn)代码如下,顺便说一下,楼主给的答案少了一个.. def nextProgram(l:list): l = sorted(list(enumerate(l)), key=lambda x:x[1]) res = [-1] * len(l) stack = [] for i,e in l: while len(stack) > 0 and stack[-1] < i: index = stack.pop() res[index] = e stack.append(i) return res print(nextProgram([11,13,10,5,12,21,3])) #[12, 21, 12, 12, 21, -1, -1]
投递谷歌等公司10个岗位 >
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务