栈内取数算法题求助

最近刷到一道关于栈内取数的算法题,没什么头绪,有没有大佬来指导下😂😂😂


题目描述

在一个栈中有一个1-n的排列(即序列的长度为n, 且1-n中每个元素只出现一次),
现在你需要把元素按照一定顺序取出,因为这是一个栈,你不能直接从中拿走某个元素,
你需要先拿走排在
该元素之前的元素,然后将目标元素取出,再把这个元素之前取出的多余元素按照任意顺序放回,
已知拿出和放回一个元素花费的时间均为1.
如原序列是[1,2,3,4],如果我们要拿出元素3,则需要先把1,2,3拿出然后再将1,2放回,
总耗时是5,当然放回后的顺序可以是[2,1,4],也可以是[1,2,4]。
现在拿出序列的顺序是已知的,请你求出拿出每一个元素的最小时间是多少。例如上面的例子,我第二个
想拿出的元素是2,如果放回序列是[1,2,4],则所需时间是3,如果放回序列是[2,1,4],则所需时间是1.

输入描述
输入第一行仅包含一个正整数,表示序列的长度n(n <= 100000)
接下来一行有n个正整数,是1-n的排列,中间用空格隔开,表示栈中的序列顺序
第三行同样是一个1-n的排列,表示拿出元素的顺序

输出描述
输出包含n行,每行一个整数,表示拿出第i个元素的最小花费时间是多少

样例输入
3
3 1 2
3 2 1

样例输出
1
3
1

#学习路径#
全部评论
再用一个栈
点赞 回复 分享
发布于 2021-06-16 07:36

相关推荐

看到这个内容真是闹麻了。。。。。。现在有了AI以后很多人面试都会作弊吗?&nbsp;那对老老实实面试的人岂不是不公平....
程序员牛肉:公平那是对小孩子讲的童话故事,成年人的世界只有能不能接受失败的后果。 你要是能接受面试作弊被发现之后多家公司联合永久拉黑的后果,你就搞。
点赞 评论 收藏
分享
白火同学:能。我当初应届沟通了1200,收简历50,面试10左右吧,加油投吧
投了多少份简历才上岸
点赞 评论 收藏
分享
自由水:笑死了,敢这么面试不敢让别人说
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务