题解 | #牛牛的魔法值#
牛牛的魔法值
http://www.nowcoder.com/practice/4d7d8a61ad2f4c9b9f130a35a97b49f5
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 表示是几维空间 * @param a int整型一维数组 表示n维空间的坐标 * @return int整型 */ public int solve (int n, int[] a) { // write code here int ans = 0; Stack<Integer> stack = new Stack<>(); stack.push(a[0]); for(int i = 0; i<n;i++){ while(!stack.isEmpty() && stack.peek() < a[i]){ stack.pop(); } if(!stack.isEmpty()){ ans = Math.max(ans,a[i]^stack.peek()); } stack.push(a[i]); int j = i+1; while(j<n && a[j] < a[i]){ j++; } if(j < n){ ans = Math.max(ans,a[i]^a[j]); } } return ans; } }