阿里云一面

  1. 自我介绍

  2. ==与equals的差别

  3. 重写equals和hashcode有什么要求

  4. Java集合有哪些接口,和具体的实现类

  5. 聊一聊hashset

  6. 线程有什么状态,调用什么方***使转态变换

  7. 线程池创建有哪些参数

  8. 核心线程数和最大线程数应该怎么设定(根据并发、CPU数、i/o密集型和计算密集型等等)

  9. spring框架的ioc和aop

  10. aop的底层实现(动态代理:jar和cglib)

  11. jar动态代理和cglib有什么限制条件

  12. 数据库设计题:设计一个选课系统的表设计(学生、老师、课程、老师与课程的联系表、选课表)

  13. 问上面设计表的一个查询:选出选修体育课的女生并且成绩不及格的课程名、老师名、学生名、成绩(缺考成绩为null)。考察内连接、外连接、左外连接、右外连接。

  14. 聊聊我的竞赛经历

  15. 算法题:
//评测题目: 一颗多叉树,每个节点一个整数值。求树的最长子序列的长度。子序列指子节点的值比父节点的值大1.
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

    private static int ans = 0;
    public static void main(String[] args) {
        ArrayList<TreeNode> list1 = new ArrayList<>();
        for(int i=1;i<10;++i){
            list1.add(new TreeNode(i, null));
        }
        TreeNode root = new TreeNode(0, list1);
        ArrayList<TreeNode> list2 = new ArrayList<>();
        for(int i=1;i<10;++i){
            list2.add(new TreeNode(i, null));
        }
        list1.get(0).setChildNode(list2);
     //  System.out.println(root);
        System.out.println(solution(root));

    }

    public static int solution(TreeNode treeNode) {
        ans = 0;
        dfs(treeNode, Integer.MAX_VALUE, 0);
        return ans;
    }

    public static void dfs(TreeNode treeNode, int fa, int len) {
        if(treeNode == null) return ;
        ans = Math.max(ans, len);
        if(treeNode.getChildNode() == null) return ;
        if(treeNode.getVal()-1 == fa) {
            for (TreeNode node : treeNode.getChildNode()) {
                dfs(node, treeNode.getVal(), len+1);
            }
        }else {
            for (TreeNode node : treeNode.getChildNode()) {
                dfs(node, treeNode.getVal(), 1);
            }
        }

    }
}




class TreeNode {
    private int val;
    private List<TreeNode> childNode;

    public int getVal() {
        return val;
    }

    public void setVal(int val) {
        this.val = val;
    }

    public List<TreeNode> getChildNode() {
        return childNode;
    }

    public void setChildNode(List<TreeNode> childNode) {
        this.childNode = childNode;
    }

    public TreeNode() {
    }

    public TreeNode(int val, List<TreeNode> childNode) {
        this.val = val;
        this.childNode = childNode;
    }
}
待续!(希望有后续)
#面经##阿里巴巴##Java工程师##校招#
全部评论
3怎么答呀大佬
点赞
送花
回复
分享
发布于 2022-07-16 21:27

相关推荐

6 20 评论
分享
牛客网
牛客企业服务