2021-07-08 华为2022批笔试

article/2025/10/11 5:20:21

华为2022批笔试

  • 三道题
    • T1
    • T2
    • T3

三道题

总结:写的时候太紧张了,很烦

T1

题目:给出n个任务的最晚完成时间(单位为小时)和对应积分,每小时只能做一个任务,且超时后不获得积分,求出最大的价值和。

解法:排序+堆
先对数组排序,先对最晚完成时间升序排序,再对积分降序排序。
用小根堆存储已经完成的任务的积分,遍历所有任务,当该任务未超时时加入堆,如果超时,比较两个任务的积分,将积分更多的任务加入堆,并且pop。
最后堆里面的就是能拿到积分的任务。

#include <bits/stdc++.h>using namespace std;using ll = long long;int main() {int n;cin >> n;vector<pair<ll, ll>> v;for (int i = 0; i < n; ++i) {int t1, t2;cin >> t1 >> t2;v.push_back({ t1, t2 });}sort(v.begin(), v.end(), [&](const auto& lhs, const auto& rhs) {return lhs.first != rhs.first ? lhs.first < rhs.first : lhs.second > rhs.second;});priority_queue<ll, vector<ll>, greater<ll>> pq;for (const auto& i : v) {if (i.first > pq.size()) pq.push(i.second);else {if (i.second > pq.top()) {pq.pop();pq.push(i.second);}}}ll res = 0;while (!pq.empty()) {res += pq.top();pq.pop();}cout << res << endl;return 0;
}
// T1
/*
7
1 6
1 7
3 2
3 1
2 4
2 5
6 115
*/

T2

题目:给出n个节点,m条边的带权有向图,给出一个起点s,问是否能访问到所有点,能的话输出最长路径。
解法:dfs

只有图片,懒得打一遍了
在这里插入图片描述

T3

题目:给定一个棋盘,出发点和目的地,棋盘上有若干障碍,问棋子”马“最少需要多少步才能到达目的地。

解法:bfs

#include <bits/stdc++.h>using namespace std;using ll = long long;int main() {int w, h;cin >> w >> h;vector<string> v;string tmp;int start_i, start_j;int des_i, des_j;// INPUTfor (int i = 0; i < w; ++i) {cin >> tmp;v.push_back(tmp);int pos1 = tmp.find("H");if (pos1 != -1) {start_i = i;start_j = pos1;}int pos2 = tmp.find("T");if (pos2 != -1) {des_i = i;des_j = pos2;}}// INITvector<vector<int>> visit(w, vector<int>(h, 0));const vector<pair<int, int>> neighbor{ {-1, 0}, {0, 1}, {1, 0}, {0, -1} };const vector<vector<pair<int, int>>> direction{ {{-2,  1}, {-2, -1}},{{-1,  2}, {1 ,  2}},{{2 ,  1}, {2 , -1}},{{-1, -2}, {1 , -2}} };queue<pair<int, int>> q;q.push({ start_i, start_j });int res = 0;// BFSwhile (!q.empty()) {int len = q.size();for (int i = 0; i < len; ++i) {auto p = q.front(); q.pop();visit[p.first][p.second] = 1;if (p.first == des_i && p.second == des_j) {cout << res << endl;return 0;}for (int j = 0; j < 4; ++j) {int nei_i = p.first + neighbor[j].first, nei_j = p.second + neighbor[j].second;if (nei_i >= 0 && nei_i < w && nei_j >= 0 && nei_j < h && v[nei_i][nei_j] != '#') { // neighbor validfor (int k = 0; k < 2; ++k) {int newi = p.first + direction[j][k].first;int newj = p.second + direction[j][k].second;if (newi >= 0 && newi < w && newj >= 0 && newj < h && !visit[newi][newj]) {q.push({ newi, newj });}}}}}++res;}cout << "-1" << endl;return 0;
}
// T3
/*
5 13
........H...#
........#....
.....#.......
.#...........
..........T#.
4
5 13
........H...#
........#....
.....#.T.....
.#...........
...........#.
3
*/

http://chatgpt.dhexx.cn/article/Bf5twd6k.shtml

相关文章

2017华为笔试、面试经历

**背景介绍**&#xff1a;2016年7月参加第十一届“华为杯”研究所电子设计大赛获西北赛区一等奖&#xff0c;于2016年8月到上海嘉定工业区参加全国总决赛获全国三等奖。 期间&#xff0c;参加了在线测评、笔试、专业面试、综合面试、部门选择、未完待续。 **备注**&#xff1a;…

4.15日华为笔试

参考&#xff1a; 华为笔试&#xff0c;大家做的怎么样&#xff1f;华为4.15笔试前两题AC - 正则表达式华为笔试2.7 4-15 - C华为4.15笔试 - C 题目简介&#xff1a; 第一题&#xff1a;求获胜者&#xff0c;如果票数相当&#xff0c;按照字母排序&#xff0c;a>b>c,A…

19.华为笔试题整理

1.两数之和 数组可以有重复元素,所以与力扣的第一题稍微有点不同 public int[] twoSum(int[] numbers, int target) {int n numbers.length;HashMap<Integer, Integer> map new HashMap<>();for (int i 0; i < n; i) {int realTarget target - numbers[i];i…

华为2020校招笔试编程题

华为2020校招笔试编程题 刚做完华为的笔试题&#xff0c;简要描述一下三道编程题的解决方法以及python代码实现 第一题大致描述&#xff1a; 给定两个已经升序排序好的的序列A{a1,a2,a3,...an} 和B{b1,b2,b3...bn} &#xff0c;一个数R&#xff0c;找出满足以下条件的的&#x…

华为笔试题 2022.3.30

1、业务部署芯片 思路&#xff0c;就硬模拟 #include <algorithm> #include <iostream> #include <string> #include <vector>using namespace std;int main() {int m, n;cin >> m;cin >> n;char arr[n];for (int i 0; i < n; i) {ci…

华为2019届校招笔试题

1. 给出一个字符串&#xff0c;将重复的字符去除&#xff0c;仅保留第一次出现的字符&#xff0c;且保持去重后的字符在原字符串中的顺序不变。 输入数据是一个字符串&#xff08;不包含空格&#xff09; 输出去重后的字符串 输入&#xff1a;12ere2 输出&#xff1a;12er…

【JAVA】【华为校园招聘笔试-软件】2020-09-09

前言 华为三道题&#xff0c;100200300&#xff0c;100及格&#xff0c;大家做对第一题就好了&#xff0c;祝大家全都有心仪的offer&#xff0c;不要慌&#xff0c;不要焦虑 一、完美排列——玩具&#xff08;全A&#xff09;&#xff08;注意&#xff1a;题目中说&#xff…

华为2020届逻辑笔试

1、十进制46.25对应的二进制表达式为( )。 A 101110.11 B 101101.01 C 101110.1 D 101110.01 解析&#xff1a; 首先这个题目是由整数部分和小数不同共同组成的&#xff0c;整数部分的计算是最简单的&#xff0c;整数部分除以2得到的余数按照逆向顺序排列后就是整数部分转化为二…

华为笔试

目录 2017年4月21日华为笔试题 圣诞的祝福 2017年4月21日华为笔试题 德州扑克 2017年4月21日华为笔试题 日期的天数序号 2017华为笔试题 任务调度 2017华为笔试题 公司年会 2017华为笔试题 水仙花数 2018华为笔试题 2018华为笔试题2 2017年4月21日华为笔试题 圣诞的祝福…

1.华为实习笔试

第一题(100分) 版本号排序问题,比如1.1.1版本大于1.0.0版本,每个.分割的数字范围是0-256,可以省略,比如..等价于0.0.0,可以有前导0,比如001.001.1等价于1.1.1;程序输入:需要排序的版本号个数,和各个版本号字符串,输出排序后的结果 public static List<String> dealSpli…

find命令用法

一.简介 linux的find命令用于查找指定目录中符合参数条件的文件&#xff0c;如果不设置任何参数&#xff0c;则find命令将在当前路径下查找子目录与文件。并且将查到的子目录和文件全部显示。 二.find命令常用参数 1&#xff09;根据文件名及文件拥有人拥有组查找文件 环境…

Linux下find命令详解

Linux下find命令详解 find命令格式find命令的参数find的常规用法1、按名字查找2、按目录查找3、按权限查找4、按类型查找  &#xff08;b/d/c/p/l/f &#xff09;5、按属主及属组6、按时间查找7、按文件新旧8、按大小查找9、执行命令关于 有没有 -print 的区别 find命令格式 …

java find()_java 之 find 命令

转自&#xff1a;https://blog.csdn.net/holyshit666/article/details/52296966 find命令是比较常用的命令&#xff0c;用来在特定目录下查找具有某种特征的文件。 一&#xff1a;find命令格式如下&#xff1a; find [-path......] -options [-print -exec -ok] path:要查找的目…

find 命令常用用法

find 命令——文件或目录查找而且可以直接对查找结果使用命令。 find 查找范围 查找条件 -name 按名称查找 -maxdepth 查看多深的文件&#xff0c;不能超过所限制的目录下的内容 -mindepth 查看不小于多深的文件&#xff0c;不低于所限制内容…

文件查找find命令

#!/bin/bash find /etc -name *.conf find /etc -iname "aa" #不区分大小写 find . -user hdfs find . -group yarn find /etc -type f #文件 find /etc -type d #路径 find /etc -size 1M #文件大小大于1M find /etc -size -100k #文件大小小…

Linux find命令详解

基础打印操作 find命令默认接的命令是-print&#xff0c;它默认以\n将找到的文件分隔。可以使用-print0来使用\0分隔&#xff0c;这样就不会分行了。但是一定要注意&#xff0c;-print0针对的是\n转\0&#xff0c;如果查找的文件名本身就含有空格&#xff0c;则find后-print0仍…

Linux 的find命令用法

摘要 find 是Unix/Linux命令行工具箱中最棒的工具之一。该命令在命令行和shell脚本编写方面都 能发挥功效。find 包含大量特性&#xff0c;本文记录find 的一些常用的查找功能。 find 命令的工作方式如下&#xff1a;沿着文件层次结构向下遍历&#xff0c;匹配符合条件的文件&…

linux find命令格式及find命令详解

本文详细介绍了linux find命令格式及find命令案例&#xff0c;希望对您的学习有所帮助。1、find命令的一般形式为&#xff1b; find pathname -options [-print -exec -ok ...]2、find命令的参数&#xff1b; pathname: find命令所查找的目录路径。例如用.来表示当前目录&#…

Windows命令之find命令

一、命令简介 find 命令用于查找文档中的特定字符和数字及行号, 好比, 我们在阅读文档时, 使用的快捷键 Ctrl F 来查找是一个效果, 经过 find 查找的字符也可以重定向到一个文本文档里面去, 提取特定的字符, 来进行文档的整合。 二、使用示例 1、获取命令帮助 使用 find /?…

linux find命令

一、find命令语法格式&#xff1a; find [路径] [选项] [操作] 选项参数对照表&#xff1a; 三、常用选项 -name  查找 /etc 目录下以 conf 结尾的文件&#xff0c;文件名区分大小写&#xff0c;例如&#xff1a;find /etc -name *.conf -iname 查找当前目录下所有文件名…