【2024-01-24】华为秋招笔试两道编程题解

2024-01-27 18:36

本文主要是介绍【2024-01-24】华为秋招笔试两道编程题解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

恭喜发现宝藏!搜索公众号【TechGuide】回复公司名,解锁更多新鲜好文和互联网大厂的笔经面经。
作者@TechGuide【全网同名】

订阅专栏【进阶版】2023最新大厂笔试真题 & 题解,不容错过的宝藏资源!

第一题:玻璃球计分

题目描述

小盖有根绳子,上面穿了很多玻璃球,玻璃球由红绿蓝二种颜色组成,其中红色球1分,绿色球2分,蓝色球3分,现在对同颜色连在一起的球有一个积分奖励规则当这个球与前面1个球颜色相同会给此球奖励1分,当这个球与前面2个球的颜色都相同会给此球奖励2分,以此类推,当这个球与前面3个球的颜色都相同会给此球奖励3分。

现在请从前往后计算这串玻璃球的累计分数。其中红色玻璃球用字符r表示,绿色玻璃球用字符g表示,蓝色玻璃球用字符b 表示

输入描述

1个string由r、g、b组成的字符串

1<=string.length<=10000

输出描述

经过计算后的得分

样例

输入

rgb

输出

6

样例说明

1+2+3=6

思路

模拟,思路很简单,就是遍历字符串,对于当前字符,判断与前一个字符是否相同,如果相同就更新计数器,累加得分;如果不相同,就重置计数器,更新前一个字符,再计算得分。

代码

Java版本

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s = scanner.next();char prec = 'a';int cnt = 0, res = 0;for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (c == prec) {cnt++;res += (c == 'r') ? 1 + cnt : (c == 'g') ? 2 + cnt : 3 + cnt;} else {cnt = 0;prec = c;res += (c == 'r') ? 1 : (c == 'g') ? 2 : 3;}}System.out.println(res);}
}
// vx公众号关注TechGuide,代码可能需要少量调试。

CPP版本

#include <iostream>
using namespace std;int main() {string s;cin >> s;char prec = 'a';int cnt = 0, res = 0;for (int i = 0; i < s.length(); i++) {char c = s[i];if (c == prec) {cnt++;res += (c == 'r') ? 1 + cnt : (c == 'g') ? 2 + cnt : 3 + cnt;} else {cnt = 0;prec = c;res += (c == 'r') ? 1 : (c == 'g') ? 2 : 3;}}cout << res << endl;return 0;
}
// vx公众号关注TechGuide,代码可能需要少量调试。

第二题:大模型训练

题目描述

AI大模型学习大量的训练样本,通过大量参数拟合出样本背后复杂的高维概率密度分布关系。由于训练数据量越来越大,参数越来越多,模型越来越大,传统超级计算机算力和资源有限无法满足训练需求,假设可通过量了计算机来进行人模型训练现有简化后训练了任务模型列表 tasks, tasks[i] 表示第 i个子任务模型的算力需求,为了保证模型计算的SLA要求所有的子任务模型在T个时刻内完成计算。

每个时刻,需按照给出子任务模型的算力需求列表( tasks )顺序调度到量了计算机并完成计算。任意时刻调度的多个了任务模型的算力需求总和不会超过量了计算机可承载的最人算力负荷请返回量了计算机需要提供的最低算力,可在T个时刻内计算完全部子任务模型。

输入描述

输入包括两行,第一行包含2个整数N,T,分别表示子任务模型列表长度,计算全部了任务模型的时刻要求第二行包含N个整数: tasks[1] tasks[2] tasks[3]… tasks[n] 分别表示第 i个子任务模型的算力需求。

注意:

(1) 1 <= T <= N <= 50000

(2) 1 <= tasks[i] <= 500

输出描述

输出一行,包含一个整数,表示量了计算机需要提供的。

最低算力,可在T个时刻内计算完全部子任务模型。

样例

输入

10 5
1 2 3 4 5 6 7 8 9 10

输出

15

样例说明

量子计算机需要提供的最低算力15,能够满足5个时刻内计算全部子任务模型的需要:时刻1: 1,2.3,4,5;时刻2: 6,7: 时刻3: 8: 时刻4: 9: 时刻5: 10。

思路

二分查找,计算在给定时间内完成所有子任务模型所需的最低计算能力。

代码

Java版本

import java.util.Scanner;public class QuantumComputer {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();int T = scanner.nextInt();int[] tasks = new int[N];for (int i = 0; i < N; i++) {tasks[i] = scanner.nextInt();}int l = 1, r = 500 * 50000;while (l < r) {int mid = (l + r) >> 1;if (check(tasks, T, mid)) {r = mid;} else {l = mid + 1;}}System.out.println(r);}private static boolean check(int[] tasks, int T, int x) {int cnt = 1, sum = 0;for (int r = 0; r < tasks.length; r++) {if (sum + tasks[r] <= x) {sum += tasks[r];} else {cnt++;sum = tasks[r];}}return cnt <= T;}
}
// vx公众号关注TechGuide,代码可能需要少量调试。

CPP版本

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;bool check(const vector<int>& tasks, int T, int x) {int cnt = 1, sum = 0;for (int r = 0; r < tasks.size(); r++) {if (sum + tasks[r] <= x) {sum += tasks[r];} else {cnt++;sum = tasks[r];}}return cnt <= T;
}int main() {int N, T;cin >> N >> T;vector<int> tasks(N);for (int i = 0; i < N; i++) {cin >> tasks[i];}int l = 1, r = 500 * 50000;while (l < r) {int mid = (l + r) >> 1;if (check(tasks, T, mid)) {r = mid;} else {l = mid + 1;}}cout << r << endl;return 0;
}
// vx公众号关注TechGuide,代码可能需要少量调试。

这篇关于【2024-01-24】华为秋招笔试两道编程题解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/651123

相关文章

嵌入式软件常见的笔试题(c)

找工作的事情告一段落,现在把一些公司常见的笔试题型整理一下,本人主要是找嵌入式软件方面的工作,笔试的也主要是C语言、数据结构,大体上都比较基础,但是得早作准备,才会占得先机。   1:整型数求反 2:字符串求反,字符串加密,越界问题 3:字符串逆序,两端对调;字符串逆序,指针法 4:递归求n! 5:不用库函数,比较两个字符串的大小 6:求0-3000中含有9和2的全部数之和 7

2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决

1.问题产生原因: 1.文件编码不一致:如果文件的编码方式与IDEA设置的编码方式不一致,就会产生乱码。确保文件和IDEA使用相同的编码,通常是UTF-8。2.IDEA设置问题:检查IDEA的全局编码设置和项目编码设置是否正确。3.终端或控制台编码问题:如果你在终端或控制台看到乱码,可能是终端的编码设置问题。确保终端使用的是支持你的文件的编码方式。 2.解决方案: 1.File -> S

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据6.FALSH编程时间,擦写次数7.I/O高低电平电压表格8.外设接口

16.Spring前世今生与Spring编程思想

1.1.课程目标 1、通过对本章内容的学习,可以掌握Spring的基本架构及各子模块之间的依赖关系。 2、 了解Spring的发展历史,启发思维。 3、 对 Spring形成一个整体的认识,为之后的深入学习做铺垫。 4、 通过对本章内容的学习,可以了解Spring版本升级的规律,从而应用到自己的系统升级版本命名。 5、Spring编程思想总结。 1.2.内容定位 Spring使用经验

LeetCode11. 盛最多水的容器题解

LeetCode11. 盛最多水的容器题解 题目链接: https://leetcode.cn/problems/container-with-most-water 示例 思路 暴力解法 定住一个柱子不动,然后用其他柱子与其围住面积,取最大值。 代码如下: public int maxArea1(int[] height) {int n = height.length;int

创新、引领、发展——SAMPE中国2024年会在京盛大开幕

绿树阴浓夏日长,在这个色彩缤纷的季节,SAMPE中国2024年会暨第十九届国际先进复合材料制品原材料、工装及工程应用展览会在中国国际展览中心(北京朝阳馆)隆重开幕。新老朋友共聚一堂,把酒话桑麻。 为期4天的国际学术会议以“先进复合材料,引领产业创新与可持续化发展”为主题,设立了34个主题分会场,其中包括了可持续化会场、国际大学生会场、中法复合材料制造技术峰会三个国际会场和女科技工作者委员会沙龙,

C++入门01

1、.h和.cpp 源文件 (.cpp)源文件是C++程序的实际实现代码文件,其中包含了具体的函数和类的定义、实现以及其他相关的代码。主要特点如下:实现代码: 源文件中包含了函数、类的具体实现代码,用于实现程序的功能。编译单元: 源文件通常是一个编译单元,即单独编译的基本单位。每个源文件都会经过编译器的处理,生成对应的目标文件。包含头文件: 源文件可以通过#include指令引入头文件,以使

华为---OSPF的DR与BDR(六)

9.6 OSPF的DR与BDR 9.6.1 原理概述 在OSPF的广播类型网络和NBMA类型网络中,如果网络中有n台路由器,若任意两台路由器之间都要建立邻接关系,则需要建立n×(n-1)/2个邻接关系,即当路由器很多时,则需要建立和维护的邻接关系就很多,两两之间需要发送的报文也就很多,这会造成很多内容重复的报文在网络中传递,浪费了设备的带宽资源。因此在广播和NBMA类型网络中,OSPF协议定义

华为某员工爆料:偷偷跑出去面试,被面试官鄙视了。第一句话就问:华为淘汰的吧,35岁了,这个年龄在华为能混得下去吗?身体没啥毛病吧

“你都35岁了,难不成是被华为淘汰的?在华为混不下去了吧?身体没啥毛病吧,我们这体检可是很严的。” 近日,一位华为员工在朋友圈爆料,自己在面试时遭到了面试官的无理取闹和人身攻击,原因仅仅是因为他35岁了,曾经在华为工作过。 这番话,充满了傲慢与偏见,让人听了义愤填膺。这位面试官的言行,不仅是对求职者的不尊重,更是对职场规则的践踏。 面试本应是双向选择的过程,企业和求职者在相互了解的基