#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param n int整型 表示是几维空间
# @param a int整型一维数组 表示n维空间的坐标
# @return int整型
#
class Solution:
def solve(self , n , a ):
# write code here
if n == 1:
return 0
sum = 0
# stack维护次大值左侧最大值
stack = []
# i为次大值
for i in range(n):
while stack and stack[-1] < a[i]:
# 栈顶把比当前值小的弹出,留下比当前值大的
stack.pop()
if stack:
# 栈顶为左侧比当前值大的
sum = max(sum, a[i]^stack[-1])
stack.append(a[i])
r = i + 1
while r<n and a[r] < a[i]:
r += 1
if r<n:
sum = max(sum, a[i]^a[r])
return sum



京公网安备 11010502036488号