华为od机考攻略,参考资料

od机考大部分题目网上都能搜索到原题,答案有查重,需要修改答案
华为od机考攻略,参考资料_第1张图片
华为od机考攻略,参考资料_第2张图片

一、题型、编译问题

关于题型:
机考共三题,两道简单题目各100分,一道较难题目200分,满分400,150分及以上通过
简单:字符串/数组
简单:最短路径/关键路径
困难:二叉树/哈希算法

所有题型中,字符串处理是大头,占比接近30%,主要是分割匹配排序较多。 数组的运算题型较多,排列组合,连续数列的条件匹配较多。

困难题型主要有两类:

  1. 复杂的树,图,堆栈算法:考察最短路径和关键路径,图结构较多。
  2. 或者是比较麻烦的功能类实现:考察模块化编程思想
    数学运算的题型较多求模或者需要找到数学规律来做来设计,不要按照题型步骤编程,比如因式分解,就是找素数乘积,对于连续数组匹配,需要将数组转化处理不要想太复杂的排列组合优化等算法

关于编译:
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+自己不太会的题型,这些文章上面都有详细的注解和编码步骤分析,可以自己关注一下
华为od机考攻略,参考资料_第3张图片
华为od机考攻略,参考资料_第4张图片
华为od机考攻略,参考资料_第5张图片
华为od机考攻略,参考资料_第6张图片
华为od机考攻略,参考资料_第7张图片
华为od机考攻略,参考资料_第8张图片
华为od机考攻略,参考资料_第9张图片
华为od机考攻略,参考资料_第10张图片
华为od机考攻略,参考资料_第11张图片
华为od机考攻略,参考资料_第12张图片
华为od机考攻略,参考资料_第13张图片
参考题目
牛客 https://www.nowcoder.com/ta/huawei
简单题

  1. HJ12 字符串反转
  2. HJ11 数字颠倒
  3. HJ54 表达式求积
  4. HJ106 字符逆序
  5. HJ76 尼科彻斯定力
  6. HJ75 公共子串计算
  7. HJ86 求最大连续bit数
  8. HJ85 最长回文子串
  9. HJ100 等差数列
  10. HJ87 密码强度等级
    中等题
  11. HJ10 字符个数统计
  12. HJ46 截取字符串
  13. HJ60 查找组成一个偶数最接近的两个素数
  14. HJ40 统计字符
  15. HJ14 字符串排序
  16. HJ5 进制转换
  17. HJ59 找出字符串中第一个只出现一次的字符
  18. HJ58 输入n个整数,输出其中最小的K个
  19. HJ81 字符串字符匹配
    LeetCode https://leetcode-cn.com
  20. 剑指offer 62 题: 圆圈中最后剩下的数字
  21. 3:无重复字符的最长子串
    采用滑窗法
  22. 14:最长公共前缀
  23. 151:翻转字符串里的词
  24. 2047:字符串中的单词数
  25. 581:最短无序连续子数组
  26. 1071:字符串的最大公因子
  27. 1111:有效括号的嵌套度
  28. 面试题 17.08: 马戏团人塔

机考介绍

  1. 机考为三道算法题目,难度为2道简单,1道中等,需要自己处理输入输出,分值为100分、100分、
    200分。总分400分,平台在牛客。
  2. 摄像头一定要开,避免离开座位,左右晃头,以免系统误判作弊。
  3. 考试过程须控制好做题节奏,切记不要在一道题目上花费过多的时间,合理分配时间。
    刷题建议
  4. 遇到不会的题怎么办?
    万事开头难,好在算法的比我们之前做的数学题死板多了。一开始遇到题目不会是非常非常常见
    的,我建议遇到不会的题目或者自己想了半天还没有思路的题目,这么做:
  5. 直接看评论区答案(牛客按照热度降序,LeetCode按照点赞数降序,注意LeetCode有时候官
    方题解非常绕,可以优先看非官方的)。争取记住看答案后就明白这么做的原因然后背住大
    概的思路。
  6. 第二天按照自己的记忆和理解再刷一遍这个题。
  7. 第五天再刷一次。
    就是说按照遗忘曲线的规律来刷题,并且整理套路(套路可以看评论区的高票答案)。我觉得刷
    题不仅在多,而且还要让我们刷的每一个题目有价值。其实刷题多了就会发现大多数题目套路都
    是一致的。
  8. 题目都有好多解法,怎么办?
    对于让人眼前一亮,属于奇技淫巧,我强烈建议记下来学习一波。大多数情况下可以参考下面题
    型汇总,对于题型汇总中的高权重题型,建议掌握下这个方法,非高频的以后再说。
  9. 牛客还是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/
    可以根据标签来过滤题型
  10. 要不要写输入输出?
    答案是要的。虽然现在很多牛客的题目没要求构造输入输出(牛客叫核心代码模式),但是实际
    考试还是需要的(牛客叫ACM模式),平时刷题需要注意区分,多刷需要自己构造的。尤其是二叉
    树之类的题目,输入输出构造会比较花时间,练习的时候多留意输入输出构造,机试可以节省很
    多时间。
  11. 怎么鉴定我刷题成果?
    请参考下文的必会题目,如果对于这些题目都有思路并且能解答,那么恭喜你,可以准备考试
    了!
  12. 实际、独立、按时练习
    实际:不要只看解法,要实际去练,脑和手并不一致。
    独立:独立完成,事后再看解析,做题过程不要看答案。
    按时:全心投入,100分题要在40分钟内完成答题,200分题要在70分钟内完成
    题型汇总
    按照算法的难度和频率大致可以分为必会和进阶两种类型,每个子项排序表示考察的频率,序号越低,
    考察频率越高,比如数组是考察频率最高的。大家实际刷题中可以根据题库提供的功能筛选,按照热
    度、题解数等进行筛选。
    必会
  13. 数组
  14. 字符串
  15. 排序
  16. 贪心
  17. 递归
  18. 循环
  19. 滑窗
  20. 进制转换
  21. 位运算
  22. 队列
  23. 哈希表
  24. 链表
  25. 线性表
  26. 二分查找
    进阶
  27. DFS搜索
  28. BFS搜索
  29. 动态规划
  30. 前缀和
  31. 排列组合
  32. 矩阵
  33. 双指针
  34. 回溯
  35. 状态机
  36. 并查集
  37. 正则表达式
  38. 分治
  39. 枚举
  40. 统计
    建议
  41. 必会部分知识点倾向于出现在100分题中,进阶知识点倾向于出现在200分题中。建议必会部分优先
    掌握1-10知识点,进阶部分优先掌握1-4知识点,这部分出现频次高,短时间内刷题性价比高。
  42. 对于进阶部分,图往往伴随着深度优先和广度优先出现,我建议优先广度优先深度优先、二叉树
    的遍历(能应付二叉树路径统计等题型)。其余有精力再准备。对于链表、广度优先和深度优
    先,LeetCode和牛客上有很多现成的答题模板,大家可以当做公式一样进行参考
    参考套路
  43. 史上最全遍历二叉树详解
    https://leetcode-cn.com/problems/binary-tree-preorder-traversal/solution/leetcodesuan-fa-xiu-li
    an-dong-hua-yan-shi-xbian-2/
  44. BFS算法框架详解
    https://leetcode-cn.com/problems/open-the-lock/solution/wo-xie-liao-yi-tao-bfs-suan-fa-kuang-jia
    -jian-dao-/
  45. 图文详解 BFS, DFS
    https://leetcode-cn.com/circle/article/YLb5l4/
  46. labuladong 的算法小抄
    https://github.com/labuladong/fucking-algorithm
    比较全,但是建议只看题型汇总中的高频题型
    必会题目
    题目的答案语言可能比较单一,大家可以根据题目内容进行关键字搜索,找到自己语言的答案,答案为别人
    写的,不是官方参考答案,大家可以当做有思路的参考。这部分题目一定要知道具体的做法。
    搜索题目的时候发现了https://blog.nowcoder.net/zhuanlan/v0Eoqj这篇专栏,不建议大家购买,但是里
    面的题目描述的确比较详细,大家可以参考,然后根据描述去搜索答案。
    这部分的题目尽量都要掌握。
  47. 字符串分割
    https://leetcode-cn.com/circle/discuss/niKSMZ/
  48. 组成最大数
    https://python.iitter.com/%E9%A6%96%E9%A1%B5/248622.html
  49. 统计射击比赛成绩
    http://www.amoscloud.com/?p=3561
  50. 字符串序列判定
    https://www.nowcoder.com/questionTerminal/5382ff24fbf34a858b15f93e2bd85307
  51. 数据分类
    http://www.amoscloud.com/?p=2414
  52. 5键键盘的输出
    https://blog.nowcoder.net/n/c7bb482cddb647b5965c2f55ef13f7da
  53. 检查是否存在满足条件的数字组合
    http://www.amoscloud.com/?p=2825
  54. 数组拼接
    https://cxybb.com/article/weixin_41398052/106045155
  55. 数列描述
    https://blog.nowcoder.net/n/fc9be58c1a994072af9a77cd25cd3411
  56. 考勤信息
    http://www.amoscloud.com/?p=3038
  57. 按单词下标区间翻转文章内容
    https://blog.nowcoder.net/n/c157854438cc46629f0e5e33a94a4988
  58. 最大括号深度
    https://blog.nowcoder.net/n/316f6f2d6b494e28a1e4ca81b0a76988
  59. 字符串加密
    https://www.codeleading.com/article/89584473419/
  60. 整数对最小和
    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
  61. 求字符串中所有整数的最小和
    https://ask.csdn.net/questions/7423645
  62. 乱序整数序列两数之和绝对值最小
    http://www.amoscloud.com/?p=3257
  63. 非严格递增连续数字序列
    http://www.amoscloud.com/?p=2964
  64. 分积木
    https://blog.nowcoder.net/n/36e682ed2a0a455cbbfa4dc4dd24e280
  65. 连续字母长度
    http://www.amoscloud.com/?p=3034
  66. 滑动窗口最大和
    https://leetcode-cn.com/problems/sliding-window-maximum/
  67. 素数之积
    https://icode.best/i/62685042254334
  68. 仿LISP运算
    https://www.codetd.com/article/6784237
  69. 贪吃蛇
    https://blog.nowcoder.net/n/42420d1a2d324c32838f7f23e4da45f3
  70. 解密犯罪时间
    https://www.its203.com/article/weixin_44224529/117932485?2022-03-31
  71. 求满足条件的最长子串的长度
    https://www.jianshu.com/p/edc1efd18a67
  72. 机器人走迷宫
    https://blog.nowcoder.net/n/0bcd2d2047f4464bae29dedd5104c308?from=nowcoder_improve
  73. 高效的任务规划
    https://leetcode-cn.com/circle/discuss/EC2mv8/view/zT3KcL/
  74. 二叉树遍历
    https://www.codeleading.com/article/43985735740/
  75. 书籍叠放
    https://www.codeleading.com/article/11185696007/
  76. 区间交集
    https://blog.nowcoder.net/n/fd28c4bd1367426eb973a3e62e79a24e
  77. 分月饼
    https://javamana.com/2021/12/20211206054724872r.html
  78. 找最小数
    https://blog.nowcoder.net/n/60b56945100944cc987cefdd02db1b08
  79. 简易内存池
    https://blog.51cto.com/u_15127575/3271270
  80. 服务失效判断
    https://blog.nowcoder.net/n/82d7ba4e145e48e2b203b1ee63d9b153
  81. 图像物体的边界
    https://leetcode-cn.com/circle/discuss/Bu1fD6/view/oIQ50T/
  82. 跳格子游戏
    https://blog.nowcoder.net/n/8971e4919a324ada973297044015397e
  83. 数组二叉树
    https://www.idchg.com/info/86685/
    题目可以参考这个博客,不 建议购买https://blog.nowcoder.net/n/b3f4a031eea2422c9c42e0f71d
    c6e161
  84. 考古学家
    https://blog.nowcoder.net/n/9876a8a7bf104ec7ab88c350f268b8de
  85. 解压报文
    https://www.codeleading.com/article/50015743571/
  86. 最长的指定瑕疵度的元音子串
    https://www.icode9.com/content-1-1259108.html
  87. 目录删除
    https://www.cnblogs.com/skyshi/p/15969831.html
  88. 火锅
    https://cdmana.com/2022/03/202203260546548598.html
  89. 服务器广播
    https://www.codeleading.com/article/14505696344/
  90. 二叉树的广度优先遍历
    https://www.cnblogs.com/gcter/p/15469584.html
  91. 找单词
    https://blog.nowcoder.net/n/581f8f196a8a4f98a0a05334daa4b6b1?from=nowcoder_improve
  92. 招聘
    http://www.noobyard.com/article/p-vvnvrixx-px.html
    某公司组织一场公开招聘活动…
  93. 斗地主之顺子
    https://blog.nowcoder.net/n/d2039c7bb5d74c7da969f731f036d700

你可能感兴趣的:(华为od算法题,算法,动态规划)