9.19 中兴笔试面经 - 编程题 & 题解

alt

考试平台: 海纳在线考试

考试时间:2023-09-19 (两小时)

投递岗位: 软件开发

考试题型: 单选题10题(每题3分)+ 多选题5题(每题6分)+ 编程题2题(每题20分)

P1

​ 您是一名越野路线规划师,负责规划从A到B的越野旅行路线。您得到了一份A到B之间的地形图数据,上面列出了两地的各景点的海拔高度(景点大小可以根据不同比例尺来决定)。您需要根据这份地形图数据来寻找一条相对平缓的旅行路线,基本原则是:找出起伏最小的一条路线,在这条路线上的景点之间的落差尽可能小。假设某条路径上的景点高度分别为: 100,200,205,300,280,您需要计算出相邻景点之间的落差,分别为100 (200-100) 、5 (205-200)、95 (300-205)、-20 (280-300)。 ​ 不幸的是,您的同事不小心将各路径上各景点海拔高度的数据丢失了,手里只有各景点间的落差数据。您的同事想通过瞎编一些数据来蒙混过关,但您知道这种方法是不可取的。为了更好、更直观地向您的同事展示可能的组合,您决定写一个程序,通过落差数据和当地的最高和最低海拔数据,直接显示可能的组合数以打消他企图蒙混过关的念头。

输入描述

第一行输入某条路径上一系列落差数,数字之间以逗号分隔 第二行输入当地的最低海拔 第三行输入当地的最高海拔

输出描述

输出根据落差数系列和最高、最低海拔数计算得到的可能的高度组合数 (只需要输出有几种组合,不需要输出具体的组合情况)

样例1

输入:
10,5,9,-2
1
100

输出:
76

样例2

输入:
100,5,95,-20
50
400

输出:
151

题解

题目要求的其实就是,找到给定路径的最高点和最低点之间的最大落差,然后根据区域的最高最低海拔来计算出有多少种组合。

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String line1 = in.nextLine();
        String[] split = line1.split(",");

        int n = split.length;
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) arr[i] = Integer.parseInt(split[i]);

        // 该区域最低,最高
        int low = in.nextInt(), hight = in.nextInt();

        // min, max 表示选择的该路径中高于和低于 a[0] 的最大落差
        int min = 0, max = 0, sum = 0;
        for (int h : arr) {
            sum += h;
            min = Math.min(min, sum);
            max = Math.max(max, sum);
        }
        // 表示选择的这条路径中,最高点和最低点之间的落差
        int h = max - min;

        System.out.println(hight - low - h + 1);
    }
}

P2

在遥远的宇宙中,星际旅行是家常便饭。在每一个星际码头,都有一个特殊的星际时钟,用来指示星际航班的起飞时间。这个星际时钟并不是我们习惯的十进制时间显示,而是用二进制来显示时间。 星际时钟有两排LED灯,第一排四个LED灯表示小时,第二排6个LED灯表示分钟。例如; 1 0 0 1 1 1 1 0 1 1 这表示9:59分,第一排四位分别为1、0、0、1的二进制值转换为十进制数字分别为:8、0、0、1,它们的和为9;第二排六位分别为1、1、1、0、1、1,转换成十进制数字分别为32、16、8、0、2、1,它们的和为59,因此如果时钟上的

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

🔥笔试编程真题宝典💯 文章被收录于专栏

📕分享大厂机试真题深度剖析核心考点,助你速通面试。

全部评论
第一题a不了
点赞 回复 分享
发布于 2023-10-09 15:24 江苏

相关推荐

如题,只有过一段小厂实习经历,秋招会很吃亏吗?
陈100:你觉得你进入小厂实习后,实习前和实习后技术水平有提升没? 有的话,肯定有帮助
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
评论
6
9
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务