华为机试高频题目(Java实现)

华为机试中出现的高频算法题目的一个汇总。

说明:

  1. OJ模式下的输入输出。
  2. 代码是Java实现。

首先对于华为机试的OJ输入输出需要熟练,可以参考:

ACM(OJ)模式下对于各种输入输出情况的总结(JAVA)

其次Java做题过程中会经常用到排序,数组,二维数组,list,HashMap,可以参考:

Java数组、ArrayList、HashMap排序总结

华为机试高频题目:
1. 字符串
类别题目知识点题目分值 / 难度
字符串华为机试:TLV解析Ⅰ字符串分隔、拼接、搜索100/中等
字符串华为机试:VLAN资源池字符串分隔、拼接、与数组的转化、List排序100/中等
字符串华为机试:字符串统计(全量和占用字符集)字符串分隔、拼接、哈希表100/简单
字符串华为机试:无重复字符的元素长度乘积的最大值字符串分隔、长度100/简单
字符串华为机试:非严格递增连续数字序列字符串分隔、非严格递增100/简单
字符串华为机试:拼接URL字符串分隔、替换100/简单
字符串华为机试:矩阵最大值字符串、二进制100/中等
字符串华为机试:最远足迹字符串、数组100/中等
字符串华为机试:报文解压缩字符串+栈200/中等
2. 栈和队列
类别题目知识点题目分值 / 难度
栈和队列华为机试:滑动窗口最大值队列、双指针100/简单
栈和队列华为机试:最大嵌套括号深度栈、字符串100/中等
栈和队列华为机试:字符串消除栈、字符串100/简单
栈和队列华为机试:DNA序列双指针100/中等
3. 数组
类别题目知识点题目分值 / 难度
数组华为机试:最多团队数组、二分法100/中等
数组华为机试:猴子吃桃数组、二分法200/中等
数组华为机试:停车场车辆统计数组、模拟100/简单
数组华为机试:k 对元素最小值优先队列100/中等
数组华为机试:绘图机器数组、模拟100/简单
数组华为机试:整数最小和字符数组、模拟100/中等
数组华为机试:最大社交距离TreeSet、模拟+设计100/中等
数组华为机试:玩牌高手数组+模拟100/中等
数组华为机试:最大差数组+字符串+模拟200/中等
数组排序华为机试:数组求和ArrayList、去重、排序100/中等
数组排序华为机试:身高体重排序多关键字排序、二维数组排序100/中等
数组排序华为机试:磁盘容量排序多关键字排序、二维数组排序100/中等
数组排序华为机试:数组去重和排序HashMap排序、lambda表达式排序100/中等
数组排序华为机试:最小数字字符串数组排序100/中等
数组华为机试:打印任务排序模拟+优先队列200/中等
数组华为机试:区间交集区间问题200/中等
4. 动态规划
类别题目知识点题目分值 / 难度
动态规划华为机试:高效的任务规划动态规划200/中等
动态规划华为机试:机智的外卖员动态规划100/中等
动态规划华为机试:叠积木动态规划、自定义排序100/中等
5. 二叉树
类别题目知识点题目分值 / 难度
二叉树华为机试:数组二叉树dfs+数组二叉树200/中等
二叉树华为机试:完全二叉树非叶子部分后序遍历数组二叉树、二叉树数据结构200/中等
6. 链表
类别题目知识点题目分值 / 难度
链表华为机试:输出单向链表中倒数第k个结点链表操作100/中等
7.图
类别题目知识点题目分值 / 难度
华为机试:最大岛屿体积回溯+dfs100/中等
华为机试:最小传输时延Dijkstra200/中等
华为机试:污染水域多源BFS200/中等
华为机试:考古问题回溯+dfs200/中等
华为机试:最长广播效应BFS200/中等
华为机试:叠积木DFS200/中等
华为机试:连续出牌数量BFS200/中等
华为机试:单词搜索(找到它)DFS200/中等
8. 算法数学类
类别题目知识点题目分值 / 难度
BFS华为机试:服务器广播DFS+BFS+并查集200/中等
众数中位数华为机试:查找众数及中位数hashMap排序100/中等
质数华为机试:数字涂色模拟100/中等
并查集华为机试:找城市并查集200/中等
9. 2022算法实战
时间题目知识点题目分值 / 难度
2022.3.30芯片资源限制模拟100/中等
2022.3.30按图找最近的路回溯、dfs200/中等
2022.3.30寻找完全相同的子树二叉树、dfs300/中等
时间题目知识点题目分值 / 难度
2022.4.6查找舆情热词多关键字排序、TreeMap100/中等
2022.4.6服务启动BFS,HashSet200/中等
2022.4.6天然货仓单调栈300/中等
时间题目知识点题目分值 / 难度
2022.4.13硬件资源分配多关键字排序、HashMap/优先队列100/中等
2022.4.13工单调度策略贪心、优先队列200/中等
2022.4.13分发糖果动态规划、01背包300/中等
时间题目知识点题目分值 / 难度
2022.4.20新员工考试回溯、dfs100/中等
2022.4.20按照路径替换二叉树二叉树、递归200/中等
2022.4.20[找最佳执行路径]dfs,HashMap300/中等
时间题目知识点题目分值 / 难度
2022.4.27购买水果最便宜的方案贪心、排序100/中等
2022.4.27公式修正模拟200/中等
2022.4.27项目规划dfs,01背包300/中等
  • 97
    点赞
  • 698
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
华为机试题目是一个Java编程题。以下是一个可能的答案: 这道题目要求编写一个Java程序,实现如下功能: 在给定的整数数组中,找出出现次数最多的元素,并返回该元素。 解题思路如下: 1. 创建一个HashMap,用于存储每个元素及其出现的次数。 2. 遍历整数数组,对于数组中的每个元素: - 如果HashMap中已经存在该元素,则将该元素的计数加1; - 如果HashMap中不存在该元素,则将该元素加入HashMap,并将其计数设置为1。 3. 遍历HashMap的所有键值对,找出计数最大的元素。 4. 返回计数最大的元素。 以下是代码示例: import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { int[] arr = {1, 2, 3, 2, 1, 1, 2, 3, 3, 3, 4, 4, 4, 4}; int result = findMostFrequentElement(arr); System.out.println("出现次数最多的元素是:" + result); } public static int findMostFrequentElement(int[] arr) { Map<Integer, Integer> map = new HashMap<>(); int maxCount = 0; int mostFrequentElement = 0; for (int i : arr) { if (map.containsKey(i)) { int count = map.get(i); map.put(i, count + 1); } else { map.put(i, 1); } } for (Map.Entry<Integer, Integer> entry : map.entrySet()) { int element = entry.getKey(); int count = entry.getValue(); if (count > maxCount) { maxCount = count; mostFrequentElement = element; } } return mostFrequentElement; } } 以上代码会输出"出现次数最多的元素是:4",因为在给定的数组中,元素4出现的次数最多。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值