首页 > 其他分享 >面实操

面实操

时间:2024-05-07 10:55:29浏览次数:21  
标签:TreeNode int al return new 面实 public

沃尔玛供应链

springboot 自动装配

2、dubbo超时组件
3、netty常用handler,粘包拆包

链路追踪怎么做的

4、docker file怎么写的
5、redis线程模型
6、redis怎么解决2个操作是事务
7、热点表新增字段超时怎么处理
8、灰度部署怎么切量
9、分布式事务,二段提交怎么实现的

如何得到二叉树的高度

import java.util.Deque;
import java.util.LinkedList;

public class TreeHigh {
    public static void main(String[] args) {
        TreeNode node = new TreeNode(1);
        TreeNode node11 = new TreeNode(2);
        TreeNode node12 = new TreeNode(3);
        TreeNode node21 = new TreeNode(4);
        TreeNode node22 = new TreeNode(5);
        TreeNode node31 = new TreeNode(6);
        node.left = node11;
        node.right = node12;
        node11.left = node21;
        node11.right = node22;
        node22.left = node31;
        int high = getHigh(node);
        System.out.println(high);
    }
    public static int getHigh(TreeNode node) {
        if (node == null) {
            return 0;
        }
        int high = 0;
        Deque<TreeNode> stack = new LinkedList<>();
        stack.push(node);
        while (!stack.isEmpty()) {
            int size = stack.size();
            for (int i = 0; i < size; i++) {
                TreeNode n = stack.pollLast();
                if (n.left != null) {
                    stack.push(n.left);
                }
                if (n.right != null) {
                    stack.push(n.right);
                }
            }
            high++;
        }
        return high;
    }
    public static class TreeNode {
        public TreeNode left;
        public TreeNode right;
        public int value;
        public TreeNode(int value) {
            this.value = value;
        }
    }
}

2个数组,如何得到2个数组所有成员的中位数

public class ArraysMiddle {
    public static void main(String[] args) {
        int[] a = new int[]{2, 3, 7, 1, 3};
        int[] b = new int[]{1, 32, 6, 5, 8};
        //预期1,1,2,3,3,5,6,7,8,32取中位数,偶数取3+5/2,奇数个取中间数
        //目标是取中位数,可以不用完全排序,可以考虑使用冒泡
        System.out.println(getMuddle(a,b));
    }
    private static int getMuddle(int[] a,int[] b ){
        int al = a.length;
        int bl = b.length;
        int l = al + bl;
        int m = (l+1) / 2;
        //只排序一半<m+1
        for (int i = 0; i < m+1; i++) {
            for (int j = 1; j < l-i ; j++) {
                int temp;
                if (j < al) {
                    if (a[j-1] > a[j]) {
                        temp = a[j-1];
                        a[j - 1] = a[j];
                        a[j] = temp;
                    }
                }else if(j == al){
                    if (a[j-1] >b[j-al]) {
                        temp = a[j-1];
                        a[j - 1] = b[j-al];
                        b[j-al]= temp;
                    }
                }else{
                    if (b[j-al-1] >b[j-al]) {
                        temp = b[j-al-1];
                        b[j-al-1] = b[j-al];
                        b[j-al]= temp;
                    }
                }
            }
        }
        //已排序一半
        if (l % 2 == 1) {
            if (m > al){
                return b[m-al-1];
            }else{
                return a[m-1];
            }
        }else{
            if (m < al){
                return (a[m - 1] + a[m]) / 2;
            }else if (m == al){
                return (a[m - 1] + b[0]) / 2;
            } else{
                return (b[m - al-1] + b[m-al]) / 2;
            }
        }
    }
}

标签:TreeNode,int,al,return,new,面实,public
From: https://www.cnblogs.com/wish5714/p/18176731

相关文章

  • uniapp小程序页面实现元素与胶囊进行居中对齐
    无论是否为uni,关键在于获取胶囊中点的位置,如果是原生小程序根据小程序文档获取,其余逻辑处理是一致的代码语法都只是技术选择,重点是逻辑处理,对于技术的运用,代码技术好比是积木,好的程序就是好的组合代码,利用技术的特点进行组合,1.效果实现代码fixedTop(){lets......
  • b站的视频进度条悬浮预览视频画面实现方式
    1.探究在看b站视频,滑到进度条的时候突发奇想,想知道这个预览图是怎么做到的打开控制台,发现每次移动鼠标悬浮位置的时候都会发出一条网络请求,并且该请求的size显示来源于内存,当时以为每次加载视频的时候先提前把所有预览图都加载好了吗?但是刷新后去看发现只有当鼠标移动......
  • 基于YOLOv8v7v6v5和LPRNet的中文车牌识别系统(深度学习代码+UI界面实现+训练数据集)
    摘要:之前的中文车牌识别系统升级到v2.0版本,本文详细介绍使用深度学习实现的高效中文车牌识别系统完整代码,包括训练过程、原理介绍、模型对比、系统设计等部分。采用了最新的YOLOv8、YOLOv7、YOLOv6、YOLOv5目标检测算法进行车牌检测定位,并应用LPRNet识别车牌字符,另外支持车牌颜......
  • 基于YOLOv8/v5和ByteTrack的多目标检测计数与跟踪系统(深度学习代码+UI界面实现+训练数
    摘要:之前的多目标检测与跟踪系统升级到现在的v2.0版本,本博客详细介绍了基于YOLOv8/YOLOv5和ByteTrack的多目标检测计数与跟踪系统。该系统利用最新的YOLOv8和YOLOv5进行高效目标检测,并通过ByteTrack算法实现精确的目标跟踪,适用于多种场景如人群监控、交通流量分析等。系统设计......
  • 基于vite多页面实现多端同构开发和部署
    背景由于在开发前端项目中,后台管理端和用户端存在多个模块和页面逻辑可以复用,管理模块和用户端渲染模块使用同一套状态管理机制,只是在管理端和用户端的入口和路由模块不同,为了能够在开发时同时修改管理端和用户端共用模块,不用多项目工程修改和发布,我们基于vite多页面的基础上实现......
  • flex布局,目前主流,其他的了解一下就行。下面实现让元素去容器的两端。和垂直居中。
    <style>.div{width:100px;height:100px;background-color:red;}.divdiv{width:20px;height:20px;background-color:blue;}</style><divclass="div"style="......
  • 【Java】i18n国际化解决方案:通过AOP切面实现多语言的配置
    需求背景国际化多语言配置。相较于常规的方法,这次采取了切面的方式,来完成所有字段->不同语言的映射。大致逻辑:按常规的国际化,写一个获取语言的方法:getMsg(Stringcode);写一个深层遍历对象的方法traverseObject(Objectobj),通过反射,获取所有类型为字符串的字段,并实现对字......
  • uniapp+django登录页面实现
    前后端联动概述以一个简单的登录功能为例说明,uni-app的前后端交互项目地址:效果图前端页面开发项目地址:后端页面开发项目地址:其他参考资料1、Django项目和uni-app项目的创建及项目文件讲解https://blog.csdn.net/qq_55002406/article/details/1287887882、如何将前......
  • 浏览器页面实现读取和存储文件到c盘,是否能实现?
    浏览器页面实现读取和存储文件到c盘,是否能实现?​​vue浏览器页面实现读取c盘判断是否有制定文件目录,如果没有就创建,有就把从后端请求的视频地址下载到制定目录里,是否能实现?https://www.zhihu.com/question/639174474你的思路是错误的,在用户没有授权的情况下无法实现。在......
  • 浏览器页面实现读取和存储文件到c盘,是否能实现?
    浏览器页面实现读取和存储文件到c盘,是否能实现?​​vue浏览器页面实现读取c盘判断是否有制定文件目录,如果没有就创建,有就把从后端请求的视频地址下载到制定目录里,是否能实现?https://www.zhihu.com/question/639174474你的思路是错误的,在用户没有授权的情况下无法实现。在......