题解 | #牛牛的魔法值#

牛牛的魔法值

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;
    }
}
全部评论

相关推荐

头像
04-29 10:53
已编辑
东北大学 自动化类
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务