牛客网之网易2016实习研发工程师编程题

Java工程师笔试题整理[校招篇] Java工程师笔试题整理[校招篇] 阿里巴巴 2016阿里巴巴2016研发工程师笔试题(四)阿里巴巴2016研发工程师笔试题(三)阿里巴巴2016研发工程师笔试题(二) 2015阿里巴巴2015实习生笔试题阿里巴巴2015系统工程师研发笔试题阿里巴巴2015基础平台研发工程师实习生笔试题阿里巴巴2015研发工程师A笔试卷阿里巴巴2015研发工程师B笔试卷 腾讯 2017腾讯... 阅读详情

[编程题] 比较重量
小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量。这些钻石的重量各不相同。在他们们比较了一段时间后,它们看中了两颗钻石g1和g2。现在请你根据之前比较的信息判断这两颗钻石的哪颗更重。
给定两颗钻石的编号g1,g2,编号从1开始,同时给定关系数组vector,其中元素为一些二元组,第一个元素为一次比较中较重的钻石的编号,第二个元素为较轻的钻石的编号。最后给定之前的比较次数n。请返回这两颗钻石的关系,若g1更重返回1,g2更重返回-1,无法判断返回0。输入数据保证合法,不会有矛盾情况出现。
测试样例:
2,3,[[1,2],[2,4],[1,3],[4,3]],4
返回: 1

思路:根据g1编号,去找相关的二元组,找直接比它关系大的放集合(max)里,和找比它关系小的放集合(min)里,然后找二元组中间接比它关系大的元素放集合max里,间接比它关系小的元素放集合min里,最后看g2是在集合max里,还是集合min里。

import java.util.*;

public class Cmp {
    public int cmp(int g1, int g2, int[][] records, int n) {
        // write code here
         HashSet<Integer> max = new HashSet<>();   
        HashSet<Integer> min = new HashSet<>();   
        for (int i = 0; i < n; i++) {   
            if (records[i][0] == g1) {   
                min.add(records[i][1]);   
            }   
            if (records[i][1] == g1) {   
                max.add(records[i][0]);   
            }   
        }   

        for (int i = 0; i < n; i++) {   
            if (records[i][0] != g1 && records[i][1] != g1) {   
                if (max.contains(records[i][1])) {   
                    max.add(records[i][0]);   
                }   
                if (min.contains(records[i][0])) {   
                    min.add(records[i][1]);   
                }   
            }   
        }   

        if (max.contains(g2) && !min.contains(g2)) {   
            return -1;   
        } else if (!max.contains(g2) && min.contains(g2)) {   
            return 1;   
        } else   
            return 0;   
    }  
    }
}

[编程题] 二叉树
有一棵二叉树,树上每个点标有权值,权值各不相同,请设计一个算法算出权值最大的叶节点到权值最小的叶节点的距离。二叉树每条边的距离为1,一个节点经过多少条边到达另一个节点为这两个节点之间的距离。
给定二叉树的根节点root,请返回所求距离。

import java.util.*;

/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;
    public TreeNode(int val) {
        this.val = val;
    }
}*/
public class Tree {
    public int getDis(TreeNode root) {
        // write code here
    }
}

贴上我的代码供大家参考。

package WangYi2016;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;
    }
}

public class Tree {

    public int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;

    public int getDis(TreeNode root) {
        HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
        helper(root, map);
        // showMap(map);
        System.out.println("min:" + min + ",max:" + max);
        // root.left=null;
        List<Integer> path1 = getPath(min, map, new ArrayList<Integer>());
        List<Integer> path2 = getPath(max, map, new ArrayList<Integer>());

        int len1 = path1.size();
        int len2 = path2.size();
        int result = 0;
        for (int i = len1 - 1, j = len2 - 1; i >= 0 && j >= 0; i--, j--) {
            //一直找到最近的相等的子节点,两边一加就是最短距离
            if (path1.get(i) == path2.get(j)) {
                result = i + j;
            }
        }
        return result;

    }

    private List<Integer> getPath(int i, Map<Integer, Integer> map,
            List<Integer> list) {
        while (map.containsKey(i)) {
            list.add(i);
            i = map.get(i);
        }
        list.add(i);
        return list;
    }

    /**
    * 递归的先序遍历算法
    **/
    public void helper(TreeNode root, HashMap<Integer, Integer> map) {
        if (root == null) {
            return;
        }
        if (root.left == null && root.right == null) {
            int val = root.val;
            min = val < min ? val : min;
            max = val > max ? val : max;
        }
        if (root.left != null) {
            //因为权值互不相同,所以弄成map就可以连起来
            map.put(root.left.val, root.val);
            helper(root.left, map);
        }
        if (root.right != null) {
            map.put(root.right.val, root.val);
            helper(root.right, map);
        }
    }

    public static void main(String[] args) {
        Tree tree = new Tree();  
        TreeNode root = new TreeNode(5);  
        TreeNode left = new TreeNode(4);  
        TreeNode right = new TreeNode(6);  
        root.left = left;  
        root.right = right;  
        TreeNode r2 = new TreeNode(8);  
        right.right = r2;  
        Map<TreeNode, TreeNode> map=new HashMap<TreeNode, TreeNode>();  

        System.out.println(tree.getDis(root));
    }
}

[编程题] 寻找第K大
有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。
给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。
测试样例:
[1,3,5,2,2],5,3
返回:2

import java.util.*;

public class Finder {
    public int findKth(int[] a, int n, int K) {
        // write code here
        Arrays.sort(a);
        return a[n-k];
    }
}

用这种自带的sort肯定是代码简便,但是我觉得大家还是要自己会手写排序算法。

就随手写了一个选择排序

public void selfSort(int[] a) {
        int k,temp;
        for (int i = 0; i < a.length; i++) {
            k = i;
            for (int j = i + 1; j < a.length; j++)
                if (a[j] < a[k])
                    k = j;
            //swap(a[i],a[k]); //这里突然想到Java没有指针
            temp = a[i];
            a[i] = a[k];
            a[k] = temp;
        }
    }

上面的提到的swap我就测试了一下,想着用对象引用当参数,可是还是不行。

        Integer m = new Integer(2);
        Integer n = new Integer(3);
        new Finder().swap(m, n);
        System.out.println("---" + m + "---" + n);

输出结果还是—2—3

网易2016年研发工程师编程题 网易2016研发工程师编程题: 1 小易防御力 2 攻击炮台 3 扫描透镜 立即下载

相关推荐

STM32实战:5分钟搞定MXL90614红外测温模块的I2C驱动(附完整代码)

本文提供了一份快速集成MLX90614红外测温模块的STM32实战指南。通过详细的软件I2C驱动代码,重点解析了SMBus通信协议、CRC校验及温度数据转换,帮助开发者避开常见陷阱,实现5分钟内完成模块驱动并读取准确温度值。

wasm7browser的博客 353

面试算法——宝石比重量

小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量。这些钻石的重量各不相同。在他们们比较了一段时间后,它们看中了两颗钻石g1和g2。现在请你根据之前比较的信息判断这两颗钻石的哪颗更重。 给定两颗钻石的编号g1,g2,编号从1开始,同时给定关系数组vector,其中元素为一些二元组,第一个元素为一次比较中较重的钻石的编号,第二个元素为较轻的钻石的编号。最后给定之前的比较次数n。请返回这两颗钻石的关系,若g1更重返回1,g2更重返回-1,无法判断返回0。输入数据保证合法,不会有矛盾情况出现。 测试

hymanxq的专栏 1575

雷达回波仿真

文章目录前言一、基础理解1.慢时间维度和快时间维度2.脉冲压缩3.MTI4. 脉冲多普勒处理5.cacfar检测二、具体流程1.产生回波信息加入目标时延以及噪声2.解调回波得到基带信号3.脉冲压缩 MTI MTD cafar检测 前言 雷达算法仿真学习,主要流程包括生成目标回波,将基带信号加在载波上其次是加上目标信息和干扰信号后发射,解调回波信号得到基带信号然后MTI,MTD,最后再检测。 一、基础理解 1.慢时间维度和快时间维度 连续M个脉冲回波经过相干解调之后的基带数据形成的一个二维数据矩阵,.

qq_42961235的博客 1万+

网易2016实习研发工程师编程题

比较重量小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量。这些钻石的重量各不相同。在他们们比较了一段时间后,它们看中了两颗钻石g1和g2。现在请你根据之前比较的信息判断这两颗钻石的哪颗更重。 给定两颗钻石的编号g1,g2,编号从1开始,同时给定关系数组vector,其中元素为一些二元组,第一个元素为一次比较中较重的钻石的编号,第二个元素为较轻的钻石的编号。最后给定之前的比较次数n。

zems 553

FPGA时序约束--实战篇(读懂Vivado时序报告)

本文将详细介绍如何读懂Vivado时序报告,包括报告的基本结构和如何分析报告。

mengzaishenqiu的博客 1万+

好书分享:Control and Estimation with MATLAB(5th Edition)pdf

基于MATLAB的控制与估计》(第5版)由八章组成,包括控制算法和设计。主要内容包括状态估计和数据平滑、RLS和卡尔曼滤波器状态估计、控制系统设计、自适应控制和PID。书中的概念已经使用MATLAB和Simulink实现。提供了可下载的MATLAB和Simulink文件。适合人群:大学生、研究生、控制类工程研究人员。需要电子版pdf,回复索取。

jixianhu的博客 1510

牛客网练习题(网易)

1、[编程题] 魔法币 时间限制:1秒 空间限制:32768K 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币。 魔法机器1:如果投入x个魔法币,魔法机器会将其变为2x+1个魔法币 魔法机器2:如果投入x个魔法币,魔法机器会将其变为2x+2个魔法币 小易采购魔法神器总共...

CongliYin的博客 844

一个AI Agent顶十个软件,toB赛道正在大洗牌

一个AI Agent顶十个软件,toB赛道正在大洗牌

ith321的博客 1331

牛客网之网易面试题

输入描述: 每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,分别表示工作的数量N(N<=100000)和小伙伴的数量M(M<=100000)。接下来的N行每行包含两个正整数,分别表示该项工作的难度Di(Di<=1000000000)和报酬Pi(Pi<=1000000000)。接下来的一行包含M个正整数,分别表示M个小伙伴的能力值Ai(Ai<=10000...

weixin_30614109的博客 189

折叠式共源共栅放大器设计/备忘

w折叠式共源共栅基本结构如图

Czy1377004611的博客 3万+

【考研高数-高等数学-基础】第一章 函数、极限、连续

第一章 函数、极限、连续 第二章 导数与微分 第三章 微分中值定理及导数应用 第四章 不定积分 第五章 定积分与反常积分 第六章 定积分的应用 第七章 微分方程 第八章 多元函数微分学 第九章 二重积分 第十章 无穷级数 第十一章 向量代数与空间解析几何及多元微分学在几何上的应用 第十二章 多元积分学及其应用 难题: 极限的递推 微分中值定理的证明题 定积分的不等式和等式的证明 重积分的不等式和等式的证明 线面积分的不等式和等...

刘鑫磊 2034

网易2016实习研发工程师编程题全解析:洗牌、奖学金与路灯

在互联网研发岗校招笔试中,算法与数据结构基础决定第一轮筛选的成败。模拟题考查代码还原流程的严谨性,贪心算法解决资源约束下的最优决策,排序与边界处理则暴露极端条件的敏感度——这些核心能力恰好构成在线笔试与ACM模式编程题的高频考点。无论是处理数组下标、循环输入,还是规避int溢出、格式化输出,扎实的工程实践都能显著降低失分率。网易2016实习研发工程师编程题正是这样一套经典自测卷:洗牌、奖学金、路灯三道题,分别对应模拟、贪心、排序+端点处理,难度适中但细节陷阱密布,成为多年校招面试者绕不开的练习素材。通过逐题

weixin_34067102的博客 321

SDMA 如何实现设备对主机内存的访问

摘要:SDMA(System Direct Memory Access)是PCIe设备直接访问主机内存的核心机制,使外设无需CPU干预即可高效读写系统RAM。其实现原理包括:设备作为主控发起DMA请求,通过PCIe Memory TLP访问主机物理地址;完整通路涉及驱动分配DMA安全内存、设备配置、地址转换(IOMMU)和中断通知等步骤;关键技术涵盖地址类型(HPA/IOVA)、TLP格式、缓存一致性和安全防护机制。SDMA广泛应用于GPU、网卡、NVMe等高性能场景,是现代异构计算的基础技术,需软硬件协同

MHD0815的博客 239

网易2016实习笔试真题解析:算法基础与边界条件实战指南

在程序员求职和工程实践中,算法与数据结构是绕不开的核心能力。数组处理、字符串操作、动态规划、贪心策略以及BFS搜索,构成了大厂笔试与日常开发的高频基础。面对这类题目,仅仅记住解法模板远远不够,更重要的是理解算法原理、把握边界条件,并能在有限时间内写出无懈可击的代码。从基础的数据组织、状态转移,到路径搜索中的逐层扩展,每一个环节都考验着候选人的工程素养。这些技术点广泛应用于Web开发、推荐系统、资源调度等真实场景。本文以网易2016年实习研发工程师笔试为样例,梳理了面试笔试中的高频考点与常见陷阱,探讨如何通过

weixin_34392435的博客 470

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java笔试题_研发工程师历年企业笔试真题汇总

研发工程师一般公司都会涵盖java工程师,c++工程师,如果有c#工程师,python工程师,golang工程师等也会包括在内,当然,有的公司运维类的,测试类的也考这个试卷,具体不一定~~阿里巴巴2015研发工程师A笔试卷_阿里巴巴笔试题_牛客网 阿里巴巴2015研发工程师A笔试卷腾讯2014校招研发工程师B笔试卷_腾讯笔试题_牛客网 腾讯2014校招研发工程师B笔试卷百度2011研发工程师笔试卷...

weixin_39875028的博客 704

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【牛客网】【网易2016研发工程师编程题】【辗转相除法求最大公约数】

小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3...bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能增加bi 与c的最大公约数.那么问题来了,在一系列的锻炼后,小

ALiTuTu的专栏 1941

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

网易2016 实习研发工程师 [编程题]二叉树

传送门 有一棵二叉树,树上每个点标有权值,权值各不相同,请设计一个算法算出权值最大的叶节点到权值最小的叶节点的距离。二叉树每条边的距离为1,一个节点经过多少条边到达另一个节点为这两个节点之间的距离。 给定二叉树的根节点root,请返回所求距离。 题解: 给每个节点编号(0 - total),用map记录每个节点的父节点 找出最大权值叶子节点 和 最小权值 叶子节点的编号 然后就是...

weixin_33682719的博客 155

【牛客网】网易2017内推笔试编程题合集(二)

1、【*】[编程题] 混合颜料 你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜

小拳头的博客 2810

网易游戏技术岗在线编程题(一)

转自:网易游戏技术岗在线编程题(一) - 优快云博客 https://blog.youkuaiyun.com/k346k346/article/details/50909295 题目来源:牛客网-网易2016年研发工程师编程题。 1.小易的升级之路 小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始...

独行Freedom的博客 826

炮台攻击----网易2016研发工程师编程题

[编程题] 炮台攻击 兰博教训提莫之后,然后和提莫讨论起约德尔人,谈起约德尔人,自然少不了一个人,那 就是黑默丁格------约德尔人历史上最伟大的科学家. 提莫说,黑默丁格最近在思考一个问题:黑默丁格有三个炮台,炮台能攻击到距离它R的敌人 (两点之间的距离为两点连续的距离,例如(3,0),(0,4)之间的距离是5),如果一个炮台能攻击 到敌人,那么就会对敌人造成1×的伤害.黑默丁格将三

chengonghao的博客 489

2016校招编程题汇总

继昨天的校招题目整理:Java工程师笔试题整理[校招篇] - 学习编程 - 知乎专栏 ,今天继续推出编程题目汇总。助在校招路上准备参加校招的你一臂之力。当然也许你不准备参加校招,以下编程题也会提高你的编程能力。还在等什么?赶紧练习吧。进入主要内容(内容整理来自牛客网:牛客网)(以下内容按照以下格式整理)企业名 -- 题目名 -- 通过率小米 -- 小米Git -- 3.06%小米 -- 懂二进制...

weixin_40190107的博客 262

网易2016游戏技术岗在线编程题(一)

题目来源:牛客网-网易2016年研发工程师编程题。1.小易的升级之路小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3…bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能

Doublelv 的博客专栏。 4044

网易2016游戏技术岗在线编程题(二)

题目来源:牛客网-网易2016年研发工程师编程题二。1. 奖学金小v今年有n门课,每门都有考试,为了拿到奖学金,小v必须让自己的平均成绩至少为avg。每门课由平时成绩和考试成绩组成,满分为r。现在他知道每门课的平时成绩为ai ,若想让这门课的考试成绩多拿一分的话,小v要花bi 的时间复习,不复习的话当然就是0分。同时我们显然可以发现复习得再多也不会拿到超过满分的分数。为了拿到奖学金,小v至少要花多少

Doublelv 的博客专栏。 2718
上一篇: [LeetCode]--3. Longest Substring Without Repeating Characters
下一篇: [LeetCode]--6. ZigZag Conversion
杜鲁门
博客等级 码龄11年 219粉丝 316原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值