华为笔试,华为笔经(5.21)

本次笔试难度中等。
任务调度系统(优先队列/堆) 难度:中等 考点:优先级队列的实现(最小堆)
抢占式调度逻辑(高优先级任务打断低优先级任务) 时间片分段处理与任务状态管理地震救灾线路(最短路径算法)
难度:中等 考点:Dijkstra算法(单源最短路径)
云计算GPU分配(子集枚举+差分数组) 难度:中等 考点:暴力枚举所有客户组合(2^N)差分数组优化时间段核数统计
1.优先级任务会抢占低优先级任务。当你完成位务能执行。同等优先级任务执行。同等优先级的任务,按照小优先级越高。只有高优先级任务执行完成后,低优先级任务才能执行。同等优先级任务才能执行。同等优先级的任务,高优先级任务会抢占低优先级任务。你需要开发一个简单的任务调度系统,该系统按任务优先调度。当低优先级任务执行时,如新增了高优先级任务,高程序需要完成以下功能:请你实现一个程序,模拟这个任务调度系统。

2.某市发生地震,为了尽快将救援物质输送到受灾乡镇,需要你设计出从救援物质集结点(有且仅有一个)到某一个受灾乡镇的最短线路。 应急部门通过无人机勘察了受灾地区地形,提供了各乡镇之间以及乡镇到救援物质集结点的距离,请你算出救援物质集结点到受灾乡镇到救援。

3.某云计算服务商为客户提供M数量GPU核数的GPU分时租用服务,租用计费规则为:允许客户在每个时间单位按需租用不同的GPU核数,每个时间单位每个GPU核数的费用为R。现有N个客户,每个客户有多个不重叠时间租用一定数量的 GPU核数租用需求。对于有需求的客户,服务商可选择签约或不签约,若选择签约则需要满足租用需求中的所有时间段所需的GPU核数。 为了实现租金最大化收益,服务商需在确保任意时间单位内分配的GPU核数总数不超过M的基础上选择与哪些客户签约租用协议。 请输出租金最大化收益下的租金最大值。

详细真题及解析及华为笔试系统资料、其他各公司笔试真题合集点下面****
****
#笔试#
全部评论
210飘过
点赞 回复 分享
发布于 05-28 15:18 安徽

相关推荐

05-23 17:41
已编辑
西南交通大学 Java
面得最久的一次,一共一个半小时,java基础,jvm,集合,spring,mybatis,数据库,Linux,计网都有涉及下面是手撕题一开始是这道题/*重构字符串给定一个字符串 s ,检查是否能重新排布其中的字母,使得两相邻的字符不同。返回 s 的任意可能的重新排列。若不可行,返回空字符串 "" 。示例 1:输入: s = "aab"输出: "aba"示例 2:输入: s = "aaab"输出: "" 提示:1 <= s.length <= 500s 只包含小写字母*/感觉短时间内写不出来,然后问面试官能不能换题,面试官换了一题之后才写出来的下面是换过的题/*公共字符按ASCII码升序输出所有符合要求的字符; 如果没有符合要求的字符,则输出空列表[]。样例1输入:2 ["aabbccFFFFx2x2", "aaccddFFFFx2x2", "aabcdFFFFx2x2"]输出:["2", "F", "a", "x"]解释:字符 a 在三个字符串中都出现 2次,符合要求;字符 b 在第二三个字符串中分别出现 0次、1次,不符合要求;字符 c 在第三个字符串中出现 1次,不符合要求;字符 d 在第三个字符串中出现 1次,不符合要求;字符 F 在三个字符串中都出现了 4 次,符合要求;字符 x 在三个字符串中都出现了 2 次,符合要求;字符 2 在三个字符串中都出现了 2 次,符合要求;因此字符 a、F、x、2符合要求,按ASCII码升序输出 */代码实现public class Test {    static char[] commonChars(int count, List<String> strings) {        int[][] counts = new int[strings.size()][128];        //记录每个字符出现的次数        for(int i = 0; i < strings.size(); i++) {            String tmp = strings.get(i);            char[] charArray = tmp.toCharArray();            //记录当前字符串所有字符出现的次数            for(int j = 0; j < charArray.length; j++) {                counts[i][charArray[j]]++;            }        }        //定义变量记录符合条件的字符个数        int resCount = 0;        List<Character> res = new ArrayList<>();        for(int j = 0; j < 128; j++) {            //判断当前字符是否符合次数要求            boolean state = true;            for(int i = 0; i < strings.size();i++) {                if(counts[i][j] < count) {                    state = false;                    break;                }            }            if(state) {                resCount++;                res.add((char)(j));            }        }        char[] resArr = new char[resCount];        for(int i = 0; i < resCount; i++) {            resArr[i] = res.get(i);        }        return resArr;    }    public static void main(String[] args) {        int k = 2;        List<String> strings = new ArrayList<>();        strings.add("aabbccFFFFx2x2");        strings.add("aaccddFFFFx2x2");        strings.add("aabcdFFFFx2x2");        char[] res = commonChars(k, strings);        Arrays.sort(res);        for(char c:res) {            System.out.print(c + " ");        }    }}
华为一面188人在聊 查看2道真题和解析
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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