leetcode 496 求下一个最大元素
思想:设置两个标记。flag为找到元素标记,flag1为有大值的标记
双重循环,先循环findnum中的元素,在循环nums中的元素,找到findnums中与nums中元素相等的值,如果找到flag设为1,在进行后查,如果找到比findnum中元素大的,压栈,flag1设为1,如果循环nums后仍未找到大值元素,将-1压栈,返回栈结束
class Solution(object):
def nextGreaterElement(self, findNums, nums):
"""
:type findNums: List[int]
:type nums: List[int]
:rtype: List[int]
"""
num=len(findNums)
flag=[0]*num
flag1=[0]*num
stack=[]
i=0
for x1 in findNums:
for x2 in nums:
if x1==x2:
flag[i]=1
continue
elif flag[i]==1:
if x2>x1:
stack.append(x2)
flag1[i]=1
break
else:
continue
else:
continue
if flag1[i]==0:
stack.append(-1)
i=i+1
return stack