第一行一个整数n,即序列的长度。(2<= n <= 100000) 第二行n个数,依次表示这个序列每个数值V[i], (1 ≤ V[i] ≤ 10^8)且保证V[1]到V[n]中至少存在不同的两个值.
输出一个整数,即最大的幸运值
5 5 2 1 4 3
7
n=int(input()) s=list(map(int,input().split())) xor_list=0 for x in range(n): for y in range(x+1,n): #向右循环遍历 if s[y]>s[x]: xor_list=max(xor_list,s[y]^s[x]) break for y in range(x-1,-1,-1): #向左循环遍历 if s[y]>s[x]: xor_list=max(xor_list,s[y]^s[x]) break print(xor_list)
''' ## 列举出所有连续子序列,时间复杂度过大,O(n^2),未通过 n = int(input()) inp = [int(x) for x in input().split()] max_num = 0 for i in range(2,n+1) : for j in range(n-i+1) : temp_sublist = list(set(inp[j:j+i])) if len(temp_sublist) == 1: continue else : max_value = max(temp_sublist) temp_sublist.remove(max_value) submax_value = max(temp_sublist) temp = max_value ^ submax_value if temp > max_num: max_num = temp print(max_num) ''' ## 将max_num和submax_num“互换”,不通过 n = int(input()) inp = [int(x) for x in input().split()] max_luck_num = 0 for i in range(n): submax_num = inp[i] for j in range(i,-1,-1): if inp[j] > inp[i] : max_num = inp[j] temp = max_num ^ submax_num if temp > max_luck_num : max_luck_num = temp break for j in range(i+1,n): if inp[j] > inp[i] : max_num = inp[j] temp = max_num ^ submax_num if temp > max_luck_num : max_luck_num = temp break print(max_luck_num)