python窗口程序 圆形_程序在Python中找到圆形的更大元素

假设我们有一个称为nums的数字列表。我们必须找到一个长度相同的新列表,其中索引i处的值分配给下一个大于其右边nums [i]的元素,并在需要时返回列表的最前面。如果没有更大的数字,则应将其设置为-1。

因此,如果输入类似于[4,5,1,3],那么输出将为[5,-1,3,4]

为了解决这个问题,我们将按照以下步骤操作:n:=一个的大小

stack:=一个堆栈,最初插入0,res:=一个大小为n的列表,并以-1填充

对于范围0和1中的每个值,请执行res [堆栈顶部]:= a [i]

从堆栈中删除最后一个元素

对于范围在0到n-1之间的i

当堆栈不为空且a [堆栈顶部]

在堆栈末尾插入i

返回资源

让我们看下面的实现以更好地理解-

示例class Solution:

def solve(self, a):

n = len(a)

stack, res = [0], [-1] * n

for _ in range(2):

for i in range(n):

while stack and a[stack[-1]] 

res[stack[-1]] = a[i]

stack.pop()

stack.append(i)

return res

ob = Solution()nums = [4, 5, 1, 3]

print(ob.solve(nums))

输入项[4, 5, 1, 3]

输出结果[5, -1, 3, 4]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值