阿里笔试 8.9 第二题 AC 0%

import java.util.*;

public class test1 {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int group = scanner.nextInt();
        while(group-- > 0){
            int num = scanner.nextInt();
            List<Integer> tree = new ArrayList<>();
            for(int i = 0; i < num; i++){
                tree.add(scanner.nextInt());
            }

            int n = Math.min(11, num / 2);

            int res = digui(tree, n, true);
            if(res != -1){
                System.out.println("Yes");
            }else{
                System.out.println("No");
            }


        }
    }

    public static int digui(List<Integer> tree, int n, boolean t){
        if(tree.isEmpty()){
            return 0;
        }
        List<Integer> left = new ArrayList<>();
        List<Integer> right = new ArrayList<>();

        int root = tree.get(0);
        int length = tree.size();
        for(int i = 1; i < length; i++){
            int cur = tree.get(i);
            if(cur < root){
                left.add(cur);
            }else{
                right.add(cur);
            }
        }
        int leftN = digui(left, n, true);
        int rightN = digui(right, n, false);
//        int height = Math.max(leftN, rightN) + 1;
        if(Math.max(leftN, rightN) - Math.min(leftN, rightN) >= n || leftN == -1 || rightN == -1){
            return -1;
        }else{
            if(t){
                return leftN + 1;
            }else{
                return rightN + 1;
            }
        }

    }
}
有没有大佬帮我看看这样写错在哪儿了?AC 0%#阿里笔试##笔试题目##阿里巴巴#
全部评论
看清题,给的不是层次遍历序列,是排序二叉树插入序列
点赞 回复 分享
发布于 2021-08-09 20:52
这树你得构造啊
点赞 回复 分享
发布于 2021-08-09 20:53
题目呢?
点赞 回复 分享
发布于 2021-08-26 20:02

相关推荐

offerboyyyy:之前看到降温完收到offer了的呢佬,可以签保底等
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务