华为od机考攻略,参考资料
Posted 学习记录wanxiaowan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为od机考攻略,参考资料相关的知识,希望对你有一定的参考价值。
od机考大部分题目网上都能搜索到原题,答案有查重,需要修改答案
一、题型、编译问题
关于题型:
机考共三题,两道简单题目各100分,一道较难题目200分,满分400,150分及以上通过
简单:字符串/数组
简单:最短路径/关键路径
困难:二叉树/哈希算法
所有题型中,字符串处理是大头,占比接近30%,主要是分割匹配排序较多。 数组的运算题型较多,排列组合,连续数列的条件匹配较多。
困难题型主要有两类:
- 复杂的树,图,堆栈算法:考察最短路径和关键路径,图结构较多。
- 或者是比较麻烦的功能类实现:考察模块化编程思想
数学运算的题型较多求模或者需要找到数学规律来做来设计,不要按照题型步骤编程,比如因式分解,就是找素数乘积,对于连续数组匹配,需要将数组转化处理不要想太复杂的排列组合优化等算法
关于编译:
1.建议人选使用牛客网编译器,因为牛客网没有快捷键,如果使用本地编译器则需要经常调试编译环境,否则就算本地跑通复制到牛客网后也会出现用例不通过的情况
2.人选一定要注意审题,按照题目要求做题,比如题目要求使用树,则必须用树的知识点进行解题,若用其他技术点就算跑通最后得分也是0
如果像算法题没有明确的要求使用某技术点,则可以用数学思维进行解题
3.如果实在没有解题思路,且题中没有具体的解题要求,可以尝试暴力拆解,最终得分要看具体情况
二、 判分标准
1、代码规范及可读性
最基本的要求,需要大家都能保证。不要随意命名、建议使用一种命名风格。禁止出现如下这种将代码写到一行的。完成代码后,将代码里面多余的注释、不用的代码等删掉再提交。
2、基本测试用例通过率
保证基本的用例能通过。算法实现后自测相关数据。
3、边缘测试用例通过率
算法实现后需要根据题目去自测边缘的相关数据。
三、 做题方法
牛客网的题目与leetcode等网站不一样,leetcode会给一个接口名,考生只需要实现该接口即可,而牛客网的题目不仅需要实现题目本身的算法内容,还需要接收输入和打印输出。
1、处理输入:将题目中描述的输入存入到变量中,大家可以提前熟悉下怎么获取输入。
2、接口实现:(建议:可以独立一个接口出来实现,将输入的数据传入这个接口处理,然后该接口返回输出数据。这种做法便于后续测试,测试时可以独立测试这个接口。)
3、处理输出:一般是将数据输出到控制台。
四、必练题型
1、输入输出样题
90%以上的人败在输入的处理上,机考题目本身的算法并不复杂,请各位注意一定练习,否则遇到较难处理的输入时会导致题目不过。
OJ在线编程常见输入输出练习:https://www.nowcoder.com/test/27976983/summary#question
必练输入题:https://ac.nowcoder.com/acm/contest/5657/J 此题必须练习,熟悉如何处理较为复杂的输入和输出。https://ac.nowcoder.com/acm/contest/5657#question 该链接可以查看正确答案。
2、算法、知识点
数学知识:素数、公约数、矩阵等
重要数据结构知识:字符串(概率很大)、数组(概率很大)、链表、队列、堆、栈、map/set,以及它们的排序算法。树、图等可以自行准备,考的概率不大。
字符串最后一个单词的长度、二叉树的遍历、最大括号深度、春游名单、勾股数元组
华为在线笔试练习链接:https://www.nowcoder.com/ta/huawei
考试注意事项(可以在系统里看到详细考前须知):
1、请使用最新版 chrome 浏览器作答(72 版本以上) ,考试需开启摄像头,请确保电脑 带有摄像头;
2、考生只能在笔试页面在线编写和调试代码,手机监控,电脑摄像头都要打开,考试过程中不要故意取消监控。考试前关闭网页 QQ,网页微信等其它网站,考试过程中不要访问百度等其他网站,否则判定作弊成绩会作废。
3、考试答题时间 150 分钟,尽量在早上和安静情况下答题。
4、考试共三道编程题,考察更多的是基础知识和代码的规范性。答题前请注意查看示例(计 入 考试时长),代码完成后请务必点击【保存并调试】按扭,否则答案不作保存,不限制提 交运行次数(以提交中最高得分计分),调试完成点击【提交本题型】按钮,最后交卷;
5、考试时允许使用草稿纸,请提前准备纸笔。考试过程中允许上厕所等短暂离开,但请控制离开时间;
6、考试期间如遇到断电、断网、死机等问题,可以关闭浏览器重新打开试卷链接即可继续做题;
7、遇到问题请即时反馈给考试主办方。
8、机考链接为一周有效期,机考参加后半年之内不能再考
请提前登陆以下网址:熟悉题目方向、考点、试题难度,及所用编译包能否跑通
https://www.nowcoder.com/ta/huawei/
9、提升通过率链接 https://www.bilibili.com/video/BV1n5411t7WL?from=search&seid=8904837019105257491
如果基础稍弱些:可以去搜文章"牛客网剑指offer+自己选择的编程语言"(例:牛客网剑指offer66题Java试题),也可以直接搜牛客网剑指offer+自己不太会的题型,这些文章上面都有详细的注解和编码步骤分析,可以自己关注一下
参考题目
牛客 https://www.nowcoder.com/ta/huawei
简单题
- HJ12 字符串反转
- HJ11 数字颠倒
- HJ54 表达式求积
- HJ106 字符逆序
- HJ76 尼科彻斯定力
- HJ75 公共子串计算
- HJ86 求最大连续bit数
- HJ85 最长回文子串
- HJ100 等差数列
- HJ87 密码强度等级
中等题 - HJ10 字符个数统计
- HJ46 截取字符串
- HJ60 查找组成一个偶数最接近的两个素数
- HJ40 统计字符
- HJ14 字符串排序
- HJ5 进制转换
- HJ59 找出字符串中第一个只出现一次的字符
- HJ58 输入n个整数,输出其中最小的K个
- HJ81 字符串字符匹配
LeetCode https://leetcode-cn.com - 剑指offer 62 题: 圆圈中最后剩下的数字
- 3:无重复字符的最长子串
采用滑窗法 - 14:最长公共前缀
- 151:翻转字符串里的词
- 2047:字符串中的单词数
- 581:最短无序连续子数组
- 1071:字符串的最大公因子
- 1111:有效括号的嵌套度
- 面试题 17.08: 马戏团人塔
机考介绍
- 机考为三道算法题目,难度为2道简单,1道中等,需要自己处理输入输出,分值为100分、100分、
200分。总分400分,平台在牛客。 - 摄像头一定要开,避免离开座位,左右晃头,以免系统误判作弊。
- 考试过程须控制好做题节奏,切记不要在一道题目上花费过多的时间,合理分配时间。
刷题建议 - 遇到不会的题怎么办?
万事开头难,好在算法的比我们之前做的数学题死板多了。一开始遇到题目不会是非常非常常见
的,我建议遇到不会的题目或者自己想了半天还没有思路的题目,这么做: - 直接看评论区答案(牛客按照热度降序,LeetCode按照点赞数降序,注意LeetCode有时候官
方题解非常绕,可以优先看非官方的)。争取记住看答案后就明白这么做的原因然后背住大
概的思路。 - 第二天按照自己的记忆和理解再刷一遍这个题。
- 第五天再刷一次。
就是说按照遗忘曲线的规律来刷题,并且整理套路(套路可以看评论区的高票答案)。我觉得刷
题不仅在多,而且还要让我们刷的每一个题目有价值。其实刷题多了就会发现大多数题目套路都
是一致的。 - 题目都有好多解法,怎么办?
对于让人眼前一亮,属于奇技淫巧,我强烈建议记下来学习一波。大多数情况下可以参考下面题
型汇总,对于题型汇总中的高权重题型,建议掌握下这个方法,非高频的以后再说。 - 牛客还是LeetCode?
两个平台在我看来都可以,但是考虑到最终机考在牛客,如果平时比较习惯刷LeetCode,一定要在
牛客上下面的高频考题都刷几题,熟悉输入输出。下面附上刷题链接。
牛客
https://www.nowcoder.com/exam/oj?tab=%E7%AE%97%E6%B3%95%E7%AF%87&topicId
=196&page=1
可以根据知识点来过滤题型
牛客-华为考题
https://www.nowcoder.com/ta/huawei
LeetCode
https://leetcode-cn.com/problemset/all/
可以根据标签来过滤题型 - 要不要写输入输出?
答案是要的。虽然现在很多牛客的题目没要求构造输入输出(牛客叫核心代码模式),但是实际
考试还是需要的(牛客叫ACM模式),平时刷题需要注意区分,多刷需要自己构造的。尤其是二叉
树之类的题目,输入输出构造会比较花时间,练习的时候多留意输入输出构造,机试可以节省很
多时间。 - 怎么鉴定我刷题成果?
请参考下文的必会题目,如果对于这些题目都有思路并且能解答,那么恭喜你,可以准备考试
了! - 实际、独立、按时练习
实际:不要只看解法,要实际去练,脑和手并不一致。
独立:独立完成,事后再看解析,做题过程不要看答案。
按时:全心投入,100分题要在40分钟内完成答题,200分题要在70分钟内完成
题型汇总
按照算法的难度和频率大致可以分为必会和进阶两种类型,每个子项排序表示考察的频率,序号越低,
考察频率越高,比如数组是考察频率最高的。大家实际刷题中可以根据题库提供的功能筛选,按照热
度、题解数等进行筛选。
必会 - 数组
- 字符串
- 排序
- 贪心
- 递归
- 循环
- 滑窗
- 栈
- 进制转换
- 位运算
- 队列
- 哈希表
- 链表
- 线性表
- 二分查找
进阶 - 图
- 树
- DFS搜索
- BFS搜索
- 动态规划
- 前缀和
- 排列组合
- 矩阵
- 双指针
- 回溯
- 状态机
- 并查集
- 正则表达式
- 分治
- 枚举
- 统计
建议 - 必会部分知识点倾向于出现在100分题中,进阶知识点倾向于出现在200分题中。建议必会部分优先
掌握1-10知识点,进阶部分优先掌握1-4知识点,这部分出现频次高,短时间内刷题性价比高。 - 对于进阶部分,图往往伴随着深度优先和广度优先出现,我建议优先广度优先深度优先、二叉树
的遍历(能应付二叉树路径统计等题型)。其余有精力再准备。对于链表、广度优先和深度优
先,LeetCode和牛客上有很多现成的答题模板,大家可以当做公式一样进行参考
参考套路 - 史上最全遍历二叉树详解
https://leetcode-cn.com/problems/binary-tree-preorder-traversal/solution/leetcodesuan-fa-xiu-li
an-dong-hua-yan-shi-xbian-2/ - BFS算法框架详解
https://leetcode-cn.com/problems/open-the-lock/solution/wo-xie-liao-yi-tao-bfs-suan-fa-kuang-jia
-jian-dao-/ - 图文详解 BFS, DFS
https://leetcode-cn.com/circle/article/YLb5l4/ - labuladong 的算法小抄
https://github.com/labuladong/fucking-algorithm
比较全,但是建议只看题型汇总中的高频题型
必会题目
题目的答案语言可能比较单一,大家可以根据题目内容进行关键字搜索,找到自己语言的答案,答案为别人
写的,不是官方参考答案,大家可以当做有思路的参考。这部分题目一定要知道具体的做法。
搜索题目的时候发现了https://blog.nowcoder.net/zhuanlan/v0Eoqj这篇专栏,不建议大家购买,但是里
面的题目描述的确比较详细,大家可以参考,然后根据描述去搜索答案。
这部分的题目尽量都要掌握。 - 字符串分割
https://leetcode-cn.com/circle/discuss/niKSMZ/ - 组成最大数
https://python.iitter.com/%E9%A6%96%E9%A1%B5/248622.html - 统计射击比赛成绩
http://www.amoscloud.com/?p=3561 - 字符串序列判定
https://www.nowcoder.com/questionTerminal/5382ff24fbf34a858b15f93e2bd85307 - 数据分类
http://www.amoscloud.com/?p=2414 - 5键键盘的输出
https://blog.nowcoder.net/n/c7bb482cddb647b5965c2f55ef13f7da - 检查是否存在满足条件的数字组合
http://www.amoscloud.com/?p=2825 - 数组拼接
https://cxybb.com/article/weixin_41398052/106045155 - 数列描述
https://blog.nowcoder.net/n/fc9be58c1a994072af9a77cd25cd3411 - 考勤信息
http://www.amoscloud.com/?p=3038 - 按单词下标区间翻转文章内容
https://blog.nowcoder.net/n/c157854438cc46629f0e5e33a94a4988 - 最大括号深度
https://blog.nowcoder.net/n/316f6f2d6b494e28a1e4ca81b0a76988 - 字符串加密
https://www.codeleading.com/article/89584473419/ - 整数对最小和
http://www.4k8k.xyz/article/u013598405/114239804#%E7%AC%AC%E4%BA%8C%E9%A2%98%C
2%A0%20%E6%95%B4%E6%95%B0%E5%AF%B9%E6%9C%80%E5%B0%8F%E5%92%8C - 求字符串中所有整数的最小和
https://ask.csdn.net/questions/7423645 - 乱序整数序列两数之和绝对值最小
http://www.amoscloud.com/?p=3257 - 非严格递增连续数字序列
http://www.amoscloud.com/?p=2964 - 分积木
https://blog.nowcoder.net/n/36e682ed2a0a455cbbfa4dc4dd24e280 - 连续字母长度
http://www.amoscloud.com/?p=3034 - 滑动窗口最大和
https://leetcode-cn.com/problems/sliding-window-maximum/ - 素数之积
https://icode.best/i/62685042254334 - 仿LISP运算
https://www.codetd.com/article/6784237 - 贪吃蛇
https://blog.nowcoder.net/n/42420d1a2d324c32838f7f23e4da45f3 - 解密犯罪时间
https://www.its203.com/article/weixin_44224529/117932485?2022-03-31 - 求满足条件的最长子串的长度
https://www.jianshu.com/p/edc1efd18a67 - 机器人走迷宫
https://blog.nowcoder.net/n/0bcd2d2047f4464bae29dedd5104c308?from=nowcoder_improve - 高效的任务规划
https://leetcode-cn.com/circle/discuss/EC2mv8/view/zT3KcL/ - 二叉树遍历
https://www.codeleading.com/article/43985735740/ - 书籍叠放
https://www.codeleading.com/article/11185696007/ - 区间交集
https://blog.nowcoder.net/n/fd28c4bd1367426eb973a3e62e79a24e - 分月饼
https://javamana.com/2021/12/20211206054724872r.html - 找最小数
https://blog.nowcoder.net/n/60b56945100944cc987cefdd02db1b08 - 简易内存池
https://blog.51cto.com/u_15127575/3271270 - 服务失效判断
https://blog.nowcoder.net/n/82d7ba4e145e48e2b203b1ee63d9b153 - 图像物体的边界
https://leetcode-cn.com/circle/discuss/Bu1fD6/view/oIQ50T/ - 跳格子游戏
https://blog.nowcoder.net/n/8971e4919a324ada973297044015397e - 数组二叉树
https://www.idchg.com/info/86685/
题目可以参考这个博客,不 建议购买https://blog.nowcoder.net/n/b3f4a031eea2422c9c42e0f71d
c6e161 - 考古学家
https://blog.nowcoder.net/n/9876a8a7bf104ec7ab88c350f268b8de - 解压报文
https://www.codeleading.com/article/50015743571/ - 最长的指定瑕疵度的元音子串
https://www.icode9.com/content-1-1259108.html - 目录删除
https://www.cnblogs.com/skyshi/p/15969831.html - 火锅
https://cdmana.com/2022/03/202203260546548598.html - 服务器广播
https://www.codeleading.com/article/14505696344/ - 二叉树的广度优先遍历
https://www.cnblogs.com/gcter/p/15469584.html - 找单词
https://blog.nowcoder.net/n/581f8f196a8a4f98a0a05334daa4b6b1?from=nowcoder_improve - 招聘
http://www.noobyard.com/article/p-vvnvrixx-px.html
某公司组织一场公开招聘活动… - 斗地主之顺子
https://blog.nowcoder.net/n/d2039c7bb5d74c7da969f731f036d700
以上是关于华为od机考攻略,参考资料的主要内容,如果未能解决你的问题,请参考以下文章