1.判断当前的idx数是否在target数组中,若存在则返回栈进行一次push处理,并将该数据存入数组栈
2.先判断target是否与数组栈相等,相等时即已经满足结束条件,否则则对返回栈进行一次push以及一次pop处理
class Solution(object):
def buildArray(self, target, n):
"""
:type target: List[int]
:type n: int
:rtype: List[str]
"""
stack=[]
data=[]
for i in range(1,n+1):
if i in target:
stack.append('Push')
data.append(i)
else:
if data==target:
return stack
stack.append('Push')
stack.append('Pop')
return stack
判断数据是否位于target中用字典可以实现O(1)的时间复杂度
class Solution(object):
def buildArray(self, target, n):
"""
:type target: List[int]
:type n: int
:rtype: List[str]
"""
stack=[]
dic={}
for i in target:
dic[i]=1
data=[]
for i in range(1,n+1):
if data==target:
return stack
if dic.get(i,-1)!=-1:
stack.append('Push')
data.append(i)
else:
stack.append('Push')
stack.append('Pop')
return stack