60 Python语言最后四个用例MLE
查看原帖
60 Python语言最后四个用例MLE
725209
wangwlj楼主2022/6/2 22:34

知道大佬们都是写C、C++的多,菜鸡目前用的Python,发现Python这边目前一个人都没有AC过...

看来得去研究研究C++了。

import sys
input = lambda: sys.stdin.readline().rstrip("\r\n")
printf = lambda d: sys.stdout.write(str(d) + "\n")

n = int(input().strip())
nums = [int(i) for i in input().strip().split(" ")]
assert len(nums) == n

res = [0] * n

# 单调栈解法开始 【找严格大于的元素,维持单调递减栈;】
stack = []
for i in range(n-1, -1, -1):
    while stack and nums[stack[-1]] <= nums[i]:
        stack.pop()
    if stack:
        res[i] = stack[-1]
    stack.append(i)

for i, v in enumerate(res):
    if v != 0:
        res[i] += 1

s = ""
for r in res:
    s += f"{r} "
printf(s[:-1])
2022/6/2 22:34
加载中...