2023秋招华为笔试常考题整理

        本文根据牛客网相关帖子与力扣相关试题总结整理而成,文末放了相关链接,欢迎大家评论补充,如有雷同纯属巧合。

        零、华为机考相关注意事项

                1.机考时间两个半小时,共三道题

                2.可使用IDE编辑器

                3.ACM情况下需要自己写输入输出

                4.关掉一切内容只留考试界面,手机充好电放在旁边不要动

                5.不要照抄做过的题的思路,不要判定疑似作弊

                6.满分400分,150分算过(一个半小时内,刷过一道力扣中等题,牛客困难题)

        一、牛客网

               1.入门

                        1)HJ5 进制转换:

                                a.转化为charArray; b.建立Map提高查找的效率; c.num* pow(16,n);

                        2)HJ1 字符串最后一个单词的长度:

                                a.用指针从最后向前遍历直至空格; b.用split API分割后调用str.length()方法;

                2.字符串

                        1)HJ17 坐标移动:

                                a.split API处理输入; b.正则判断是否合法; c.调用Integer.valueOf转值处理;

                        2)HJ20 密码验证合格程序:

                                a.判断多个条件至少满足时用int值相加; b.判断b串是否含a用contains方法;

                        3)HJ33 整数与IP地之间的转换:

                                a.本质为256进制转换; b.除N取余法;

                3.排序

                        1)HJ14 字符串排序:

                                a.Arrays.sort(); b.使用PriorQueue(底层是一个二叉堆); c.Collections.sort();

                        2)HJ18 识别有效的IP地址和掩码并进行分类统计:

                                a.按照掩码合法、地址合法、ABCDE类地址和私有地址来判断; b.注意封装;

                        3)HJ30 字符串合并处理:

                                a.哈希表保存十六进制反转; b.奇偶数位分开存储并调用API; c.合并

                        4)HJ68 成绩排序:

                                a.注意多维数组排序中new Comparator<>(){}的使用方法;

                4.栈

                        1)HJ70 矩阵乘法计算量估算:

                                a.入栈的内容是矩阵行列; b.本质是括号的匹配;

                        2)HJ77 火车进站:

                                a.LIFO后进先出要用栈; b.每一辆火车进站后都有弹栈与不弹栈dfs

                5.排列组合

                        1)NC61 两数之和:

                6.双指针:

                        1)HJ85 最长回文子串:

                                a.双指针暴力遍历;

                                b.dp[i][j]表示i到j子串最长回文串,两边相等就dp[i+1][j-1]+2,否则单边最大值;

                        2)HJ65 查找两个字符串ab中的最长公共子串:

                                a.双指针双边逼近,contains API;

                                b.dp[i][j]表示以str1和str2中i.j结尾的公共子串长度,相等就dp[i-1][j-1]+1,否则各删一个字符取最大值

                7.哈希表:

                        1)HJ2 计算某字符出现次数:

                                a.将指定字符用"替代",做减法; b.用HashMap&LinkedHashSet等数据结构;

                        2)HJ10 字符个数统计:

                                a.HashSet去重统计; b.位图去重统计;

                8.递归:

                        1)HJ61 放苹果:

                                a.f(m,n) = f(m-n,n) + f(m,n - 1)右面第一项是苹果数大于等于盘子数,第二项是苹果数小于盘子的情况,当苹果为0或盘子为1时返回1。

                        2)HJ37 统计每个月兔子的总数:

                                a.本质就是斐波那契数列

                9.二叉树

                        1)NC12 重建二叉树:

                                a.对总的得到根节点和左右子树; b.重新对左右子树再去读重复上述过程;

                        2)NC15 求二叉树的层序遍历:

                                a.队列保存该层内所有节点;b.BFS

                        3)NC45 实现二叉树先序中序后序遍历:

                                a.明确先中后遍历条件; b.递归实现;

                10.动态规划

                        1)HJ61 放苹果:

                                a.dp[i][j]表示有i个苹果,j个盘子的解法,苹果少dp[i][j]=dp[i][j-1],盘子少dp[i][j] = dp[i - j][j]

                        2)HJ37 统计每个月兔子的总数:

                                a.for循环填dp[i],表示第i个月的兔子数量,dp[i] = dp[i - 1] + dp[i - 2];

                        3)HJ52 统计字符串的编辑距离

                                a.dp[i][j]表示str第i个字符与str2第j个字符间的编辑距离,若相等则编辑距离dp[i][j] = dp[i - 1][j - 1],如果不相等那么就取删插改操作+1的最小值

                        4)DP14 最长上升子序列:

                                a.dp[i]表示第i个字符结尾的子序列长度,dp[i] = Math.max(dp[i],dp[j]+1);

                11.搜索问题

                        1)HJ67 24点游戏算法

                                a.每一次都需要取操作数,然后对其加减乘除都递归判断,因此使用递归; b.若不满足24点则将那个操作数回溯为0,表示未使用;

                        2)HJ41 称砝码:

                                a.HashSet用来对可称重量去重; b.对每个结果集中每个结果都进行遍历累加;

                        3)HJ43 迷宫问题:

                                a.人为规定搜索方向; b.规定int值表示状态; c.只有一条dfs,多条bfs

                        4)HJ107 求解立方根:

                                a.牛顿法; b.二分法查找;

                12.模拟

                        1)HJ64 MP3光标位置:

        

        相关参考:1.华为机试真题按知识点整理(入门指引)_笔经面经_牛客网

        2.​​​​​​【华为23届提前批】华为机考,看这一篇就够了_招聘信息_牛客网

        3.【华为机试真题 Python实现】2022年6月高频机试题_技术交流_牛客网

        4.华为机试最全攻略_笔经面经_牛客网

        5.华为机试高频题目(Java实现)_小朱小朱绝不服输的博客-CSDN博客_华为java机考题

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值