华为OD面经

华为OD机试 2O22Q4 A卷

三道题 100分+100分+200分 150分就可以过 每道题是 分数为总分*测试用例通过比例,我这里过了2 3题 100%通过率,每道题大概讲一下题目.

第一题

给定一个数组nums,将元素分为若干个组,使得每组和相等,求出满足条件的所有分组中,组内元素和的最小值 第一行输入 m 接着输入m个数,表示此数组 数据范围:1<=M<=50, 1<=nums[i]<=50 这道题我这里没做出来,没有什么思路


第二题

求单项链表中间的节点值,如果奇数个节点去中间,偶数个取偏右边的那个值 输入: 第一行 链表头节点地址 后续输入的节点数n 后续输入没行表示一个节点,格式 节点地址 节点值 下一个节点地址(-1表示空指针) 输入保证链表不会出现环并且可能存在一些节点不属于链表 测试用例:

00010 4
00000 3 -1
00010 5 12309
11451 6 00000
12309 7 11451

输入:

6

思路:hashmap构建链表,先遍历一次记录链表长度size,再找下标为size/2的节点,不会超时 c++代码:

#include <iostream>
#include <unordered_map>
using namespace std;
struct ListNode {
	int val;
	int next;
	ListNode(int val, int next) {
		this->val = val;
		this->next = next;
	}
};
int main() {
	unordered_map<int, ListNode*> mp;
	int headAddr = 0, n = 0;
	cin >> headAddr >> n;
	for (int i = 0; i < n; i++) {
		int addr, val, next;
		cin >> addr >> val >> next;
		mp[addr] = new ListNode(val, next);
	}
	int size = 1, cur = 0;
	ListNode* head = mp[headAddr];
	ListNode* thead = head;
	while (thead->next != -1) {
		size++;
		thead = mp[thead->next];
	}
	while (head->next != -1) {
		if ((size / 2) == cur) {
			cout << head->val;
			return 0;
		}
		head = mp[head->next];
		cur++;
	}
	return 0;
}


第三题

给一个无向图染色,可以填红黑两种颜色,必须保证相邻两个节点不能同时为红色,输出有多少种不同的染色方案 第一行输入M(图中节点数) N(边数) 后续N行格式为:V1 V2表示一个V1到V2的边 数据范围:1<=M<=15,0<=N=<M*3,不能保证所有节点都是连通的 思路:这道题本来想用DFS遍历节点然后,但是不怎么会写,后来想到另一个思路,因为有N个节点,且N<=15用一个N位长的数字表示节点的染色方案,用一个vector存储所有的边,然后从0遍历到2^N-1判断每个方案是否合法就可以。 c++代码:

#include<iostream>
#include<utility>
#include<vector>
using namespace std;
typedef pair<int, int> pii;

int main() {
	int m, n;
	cin >> m >> n;
	int ans = 0;
	vector<pii> edges;
	for (int i = 0; i < n; i++) {
		int first, second;
		cin >> first >> second;
		edges.emplace_back(first, second);
	}
	for (int i = 0; i < (1 << m); i++) {
		bool flag = 1;
		for (pii p : edges) {
			if (((i >> p.first) & 1) && ((i >> p.second) & 1)) {
				flag = false;
				break;
			}
		}
		if(flag)ans++;
	}
	cout << ans;
}

评价一下 第一题和别人讨论过,感觉属于是个HARD题,2题最简单,模拟就行,3感觉考察DFS,BFS,这样的话就是一道比较常规的hard题。今天出结果了300分,感觉还行,本来目标是350+的。


2012/12/09

更新一下,一面没问什么,上来就手撕代码,题目为 leetcode 22.括号生成,dfs+回溯。 二面问了比较多再目前公司做的一些项目,八股问了一个concurrentHashMap(部门主要用的Java,虽然我刷题用的C++)手撕代码为leetcode 面试10.01合并排序数组,跟面试官说了一下思路然后面试官让用原地合并。

目前已经拿到offer,华为云,14级,15k,本科刚毕业而且目前工作没啥技术含量,所以没敢要太多。跟在华为的朋友了解了一下情况,他觉得目前华为云还是挺稳定的。

#华为Od##2022毕业生求职现身说法##华为机试,emo了##2022毕业即失业取暖地#
全部评论
第二题可以瞅瞅快慢指针法,很有用而且效率很高。面试问到你还能扯扯
5 回复 分享
发布于 2022-12-07 23:38 北京
北科也要看华为外包了嘛
5 回复 分享
发布于 2022-11-25 00:07 广东
第一题我觉得是不是可以通过求和,然后排序,从最大值开始累加找和为因数的满足条件
5 回复 分享
发布于 2022-11-18 10:38 江苏
本科生必会是么
3 回复 分享
发布于 2022-12-21 22:27 天津
15k包含绩效了吗
2 回复 分享
发布于 2023-01-03 20:56 湖北
顺带给自己打个广告,有想来的可以找我内推,或者已经入职的22届可以私聊我工号拉你进一个群,里面都是22届的
1 回复 分享
发布于 2023-03-25 20:58 上海
第一题数据量很小,你就可以求和,分解,知道 上限是多少了,暴力就应该能过,知道上限就是一个背包问题
1 回复 分享
发布于 2022-12-07 23:40 北京
插播一条,华为OD招聘,base成都北京深圳,HC多多,欢迎来聊
点赞 回复 分享
发布于 2023-03-02 19:44 广东
华为成研所大量招聘!Base成都!欢迎投递! 测试和开发都有~
点赞 回复 分享
发布于 2023-03-02 19:12 广东
感谢分享,很有用
点赞 回复 分享
发布于 2023-02-25 15:24 浙江
打个广告,招聘 华为OD/华为社招, 软件开发,软件测试岗位,工作地 南京,我们部门近两年发展迅速,OD和17级以上社招hc充足。 【招聘要求】 1、统招全日制本科及以上学历,计算机、电子、通信等相关专业 2、掌握Java、Python、C/C++、JS等主流开发语言中的一种 **************
点赞 回复 分享
发布于 2023-01-10 11:58 广东
请问python和cpp的机考题是同一套吗,还是说会不一样
点赞 回复 分享
发布于 2023-01-08 01:10 甘肃
感觉有点难哦
点赞 回复 分享
发布于 2022-11-14 21:13 四川

相关推荐

开场:&nbsp;1、熟悉的语言八股:2、Java&nbsp;当中的常见集合介绍下3、ConcurrentHashMap&nbsp;Segment&nbsp;分段锁有什么弊端4、StringBuilder&nbsp;和&nbsp;StringBuffer&nbsp;的区别,**StringBuffer&nbsp;如何保证线程安全的**5、JVM&nbsp;内存结构了解吗6、JVM&nbsp;常见问题排查常用命令知道吗7、Java&nbsp;基本数据类型和包装类型的区别8、int&nbsp;a&nbsp;=&nbsp;2;&nbsp;Integer&nbsp;b&nbsp;=&nbsp;2;&nbsp;a&nbsp;==&nbsp;b;&nbsp;以及&nbsp;Integer&nbsp;a&nbsp;=&nbsp;200;&nbsp;Integer&nbsp;b&nbsp;=&nbsp;200;&nbsp;a&nbsp;==&nbsp;b;&nbsp;结果分别是9、B&nbsp;树和&nbsp;B+&nbsp;树的区别10、Redis&nbsp;了解吗11、Redis&nbsp;持久化方式介绍下12、先后执行&nbsp;set&nbsp;name&nbsp;张三&nbsp;和&nbsp;set&nbsp;name&nbsp;李四&nbsp;在&nbsp;AOF&nbsp;持久化过程中都写入&nbsp;AOF&nbsp;文件吗13、场景:类似&nbsp;12306&nbsp;买车票,如何保证多个请求不会发生超卖14、Redis&nbsp;高可用方案知道哪些15、Redis&nbsp;Cluster&nbsp;集群如何分配&nbsp;key&nbsp;在哪个&nbsp;slot16、一般什么情况下会用&nbsp;Redis17、String&nbsp;类型,如果&nbsp;value&nbsp;大小几十兆会怎么样18、Set&nbsp;类型元素个数过多怎么办19、SQL&nbsp;语句性能问题如何排查优化20、MySQL&nbsp;什么情况下会锁表21、场景:一个表,name&nbsp;字段是非唯一索引,有多条&nbsp;name&nbsp;=&nbsp;张三,这个时候查询&nbsp;where&nbsp;name&nbsp;=&nbsp;张三,是什么锁22、场景:一个表,用户余额进行扣减,只在MySQL层面,如何保证并发安全23、MySQL&nbsp;什么情况下加记录锁24、TCP&nbsp;和&nbsp;UDP&nbsp;区别,HTTP&nbsp;用的哪个传输协议25、HTTP&nbsp;报文有哪些部分,响应体有哪些类型26、TCP&nbsp;三次握手和四次挥手过程,为什么不是五次六次其他:27、平时写代码有什么注意的点或者规范吗28、一个大型项目,你会怎么对代码分层29、平时写代码会用到&nbsp;AI&nbsp;吗,哪些场景会用30、到岗时间、实习时间、实习地点相关反问:
查看30道真题和解析
点赞 评论 收藏
分享
评论
27
97
分享

创作者周榜

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