没有合适的资源?快使用搜索试试~ 我知道了~
华为OD题库机考题库(Java实现235题39)下载
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 173 浏览量
2024-05-10
12:32:34
上传
评论
收藏 5.91MB PDF 举报
温馨提示
试读
393页
资料介绍:华为OD题库机考记录机试题库,刷题记录Java实现,共235题393页资料,PDF下载,有算法合集,Leetcode推荐题。 适用于:华为OD招聘,华为校招,社招刷题,算法题,华为OD,华为招聘,华为机试,校招笔试,校招面试,社招笔试,华为外包招聘,题库,Java实现。资料预览:https://www.uu2id.com/47372.html
资源推荐
资源详情
资源评论
华为 OD 机考题库(Java 实现)
--含题目描述、解题思路、代码注释
华为 OD 机考,简单类型的题目每道题 100 分,中等难度的题目每道题 200 分;
收集于网络,请勿商用及外传;
华为 OD 机考题库(Java 实现)
1.1 简单题 100 分题(84 题)
1.1.1 反转单词
1.1.2 版本号比较
1.1.3 求字符串中所有整数的最小
和
1.1.4 求满足条件的最长子串的长
度
1.1.5 字符串分隔(二)
1.1.6 欢乐的周末
1.1.7 整形数组按个位值排序
1.1.8 停车场车辆统计
1.1.9 找朋友
1.1.10 寻找众数和中位数
1.1.11 字符串筛选排序
1.1.12 执行时长
1.1.13 素数之积
1.1.14 数组连续和
1.1.15 求最多可以派出多少支团队
1.1.16 英文输入法
1.1.17 用连续自然数之和来表达整
数
1.1.18 计费表
1.1.19 寻找身高相近的小朋友
1.1.20 连续字母长度
1.1.21 拼接 URL
1.1.22 字符串序列判定
1.1.23 最长的指定瑕疵度的元音子
串
1.1.24 考勤信息
1.1.25 字符串变换最小字符串
1.1.26 查找接口成功率最优时间段
1.1.27 最大 N 个数与最小 N 个数的
和
1.1.28 数组去重和排序
1.1.29 整数对最小和
1.1.30 按身高体重排序
1.1.31 解密犯罪时间
1.1.32 计算面积、绘图机器
1.1.33 提取字符串中的最长表达式
1.1.34 最富裕的小家庭
1.1.35 最长子字符串的长度(一)
1.1.36 找座位
1.1.37 密码输入检测
1.1.38 游戏分组
1.1.39 分配土地
1.1.40 转盘寿司
1.1.41 开源项目热度榜单 多条件
排序
1.1.42 机器人仓库搬砖 二分法
1.1.43 小明找位置
1.1.44 分隔均衡字符串
1.1.45 围棋的气
1.1.46 执行任务赚积分
1.1.47 计算三叉搜索树的高度
1.1.48 小华最多能得到多少克黄金
1.1.49 智能成绩表 动态条件排序
多条件排序
1.1.50 内存冷热标记
1.1.51 传递悄悄话
1.1.52 最多购买宝石数目
1.1.53 剩余银饰的重量 二分查找
1.1.54 最大坐标值、小明的幸运数
1.1.55 CPU 算力分配
1.1.56 API 集群负载统计
1.1.57 万能字符单词拼写
1.1.58 虚拟理财游戏
1.1.59 分披萨 递归
1.1.60 机场航班调度程序
1.1.61 攀登者 1
1.1.62 密码解密
1.1.63 数的分解
1.1.64 求幸存数之和
1.1.65 文本统计分析
1.1.66 数据单元的变化替换
1.1.67 会议占用时间
1.1.68 小朋友来自多少小区
1.1.69 贪吃的猴子
1.1.70 多段线数据压缩
1.1.71 堆内存申请
1.1.72 项目排期
1.1.73 灰度图存储
1.1.74 任务处理、可以处理的最大
任务数
1.1.75 两个字符串间的最短路径
1.1.76 螺旋数字矩阵
1.1.77 手机 APP 防沉迷
1.1.78 测试用例执行计划
1.1.79 火星文计算
1.1.80 来自异国的客人
1.1.81 找单词
1.1.82 生成哈夫曼树
1.1.83 音乐小说内容重复识别
1.1.84 模拟数据序列化传输
1.2 字符串数组集合操作合集(33 题)
1.2.1 IPv4 地址转换成整数
1.2.2 N 进制减法
1.2.3 TLV 解析Ⅰ
1.2.4 TLV 解析 II
1.2.5 按身高和体重排队
1.2.6 按索引范围翻转文章片段
1.2.7 比赛
1.2.8 打印任务排序
1.2.9 单词接龙
1.2.10 计算最大乘积
1.2.11 密钥格式化
1.2.12 免单统计
1.2.13 敏感字段加密
1.2.14 全量和已占用字符集
1.2.15 热点网站统计
1.2.16 输出指定字母在字符串的中
的索引
1.2.17 数组拼接
1.2.18 数组去重和排序
1.2.19 数组组成的最小数字
1.2.20 统计设计比赛成绩
1.2.21 寻找相同子串
1.2.22 一种字符串压缩表示的解压
1.2.23 英文输入法
1.2.24 运维日志排序
1.2.25 找出符合要求的字符串子串
1.2.26 整型数组按个位值排序
1.2.27 字符串变换最小字符串
1.2.28 字符串分割
1.2.29 字符串排序
1.2.30 字符串筛选排序
1.2.31 字符统计与重排
1.2.32 组成最大数
1.2.33 最大 N 个数与最小 N 个数的
和
1.3 中等难度题 200 分(53 题)
1.3.1 爱吃蟠桃的孙悟空
1.3.2 员工派遣
1.3.3 路口最短时间问题
1.3.4 最小矩阵宽度
1.3.5 启动多任务排序
1.3.6 矩阵匹配
1.3.7 数字排列
1.3.8 中文分词模拟器
1.3.9 最大社交距离
1.3.10 简易内存池
1.3.11 智能驾驶
1.3.12 篮球游戏
1.3.13 抢 7 游戏
1.3.14 田忌赛马
1.3.15 查找一个有向网络的头结点
和尾节点
1.3.16 二叉树的广度优先遍历
1.3.17 运输时间
1.3.18 贪心歌手
1.3.19 快递员的烦恼
1.3.20 最长子字符串的长度(二)
1.3.21 反射计数
1.3.22 加密算法、特殊的加密算法
1.3.23 Wonderland
1.3.24 字符串拼接
1.3.25 寻找最优的路测线路
1.3.26 伐木工
1.3.27 跳马
1.3.28 亲子游戏
1.3.29 推荐多样性
1.3.30 石头剪刀布游戏
1.3.31 文件缓存系统
1.3.32 根据 IP 查找城市
1.3.33 找数字
1.3.34 二叉树计算
1.3.35 符号运算
1.3.36 跳格子 3
1.3.37 部门人力分配
1.3.38 高效货运
1.3.39 找城市
1.3.40 结队编程
1.3.41 考古学家
1.3.42 园区参观路径
1.3.43 非递减字符串的最小修改次
数 200 分 中等难度
1.3.44 连续出牌数量
1.3.45 图像物体的边界
1.3.46 可以组成网络的服务器
1.3.47 5G 网络建设
1.3.48 信道分配
1.3.49 分月饼
1.3.50 攀登者 2
1.3.51 电脑病毒感染
1.3.52 学生重新排队
1.3.53 模拟目录管理功能
1.4 LeetCode 相关题目练习(65 题)
1.4.1 两数之和
1.4.2 两数相加
1.4.3 无重复字符的最长子串
1.4.4 最长回文子串
1.4.5 Z 字型变换
1.4.6 罗马数字转整数
1.4.7 最长公共前缀
1.4.8 三数之和
1.4.9 四数之和
1.4.10 有效的括号
1.4.11 合并两个有序链表
1.4.12 括号生成
1.4.13 字符串相乘
1.4.14 跳跃游戏 2
1.4.15 全排列
1.4.16 字母异位词分组
1.4.17 跳跃游戏
1.4.18 合并区间
1.4.19 爬楼梯
1.4.20 最小覆盖子串
1.4.21 对称二叉树
1.4.22 二叉树的层序遍历
1.4.23 路径总和 II
1.4.24 最长连续序列
1.4.25 比较版本号
1.4.26 最大数
1.4.27 岛屿数量
1.4.28 快乐数
1.4.29 反转链表
1.4.30 最大正方形
1.4.31 基本计算器
1.4.32 滑动窗口最大值
1.4.33 去除重复字母
1.4.34 零钱兑换
1.4.35 反转字符串
1.4.36 字符串解码
1.4.37 移掉 k 位数字
1.4.38 数字转换为十六进制数
1.4.39 最长回文串
1.4.40 字符串相加
1.4.41 最小操作次数使数组元素相
等 II
1.4.42 火柴拼正方形
1.4.43 七进制数
1.4.44 01 矩阵
1.4.45 砖墙
1.4.46 最短无序连续子数组
1.4.47 最长和谐子序列
1.4.48 种花问题
1.4.49 前 k 个高频单词
1.4.50 每日温度
1.4.51 车队
1.4.52 最低加油次数
1.4.53 爱吃香蕉的珂珂
1.4.54 水果成篮
1.4.55 最大连续 1 的个数 III
1.4.56 爱生气的书店老板
1.4.57 公交站间的距离
1.4.58 合并两个链表
1.4.59 删除子数组的最大得分
1.4.60 有界数组中指定下标处的最
大值
1.4.61 检查字符串是否为数组前缀
1.4.62 追加字符以获得子序列
1.4.63 行星碰撞
1.4.64 寻找目标值-二维数组
1.4.65 最长单词
1.1 简单题 100 分题(84 题)
1.1.1 反转单词
题目描述:
反转单词,每行输入一个字符串,字符串含有单词和字符 **.,?** ,要求对单词进行反
转, 单词间空格>0, 字符 **.,?** 间空格 >= 0, 反转结果输出一行。(靠记忆整理)
示例 1:
输入:
My name is Bob.
输出:
yM eman si boB.
示例 2:
输入:
How are you ? i am fine
输出:
woH era uoy ? i ma enif
解题思路:
看到这道题的第一想法,就是按空格分割字符串,然后对单词进行反转。考虑到分割后,有可能单词跟那三
个标点符号会组合在一起,还得单独做处理,感觉处理逻辑上会很复杂。接着想有没有其他办法,看到单词反
转,觉得有点像 栈,先进后出,这样就实现了单词反转。这样定义一个栈,一个一个字符串容器(StringBuild
er),遍历字符串,如果不是空格,以及那三个标点字符,就将字符进栈,当碰到空格、三个标点字符的时候呢,
就将栈的字符出栈添加到字符串容器中(StringBuilder),然后在添加遍历到的这个空格或者是标点字符。
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String line = in.nextLine();
System.out.println(reverseLine(line));
}
}
public static String reverseLine(String line) {
Stack<Character> stack = new Stack<>();//栈
StringBuilder s = new StringBuilder();//字符串容器
for (char c : line.toCharArray()) {
if (c == ' ' || c == '.' || c == ',' || c == '?') {
if (!stack.isEmpty()) s.append(stackToString(stack));//先将之前的反转,添加到
(StringBuilder)字符串容器中
s.append(c);//如果是上面这四个,直接添加到字符串容器(StringBuilder)中
} else {
stack.push(c);//不是上面的那些字符,就直接入栈
}
}
//没有我可不行, 需要将最后栈中的字符添加到字符串容器中
if (!stack.isEmpty()) s.append(stackToString(stack));
return s.toString();
}
public static String stackToString(Stack<Character> stack) {
StringBuilder sb = new StringBuilder();
while (!stack.isEmpty()) {
sb = sb.append(stack.pop());
}
return sb.toString();
}
}
1.1.2 版本号比较
题目描述:
题意:版本号比较,版本号规则:主版本号.次版本号.增量版本号-发布版本号, 主版本
号、次版本号是必须的,主版本号、次版本号、增量版本号是数字,可能存在前导 0,发布版本号
为字符,可以按字典顺序进行比较,如果两个版本号相等,返回第一个版本号
输入:每个版本号按行输入,输入两个版本号
输出:版本号高的
示例 1
输入:
1.05.1
1.5.1
输出:
1.05.1
两个版本号一样,输出第一个
示例 2
输入:
1.5.2-A
1.5.2-a
输出:
1.5.2-a
因为 a 为 97 大于 A 65
示例 3
输入:
1.5
1.5.0
输出:
1.5.0
1.5.0 有增量版本号,输出 1.5.0
解题思路:
第一想法,用两个指针,从两个字符串的头开始,不断向后移动遍历,进行比较,因为存在前导 0,以及两
个版本长度不一样,可能处理上比较麻烦(只是个人这么想,大家也可以尝试一下,当时考试,也没那么多时间
尝试)。后面想还是按照最常规的方式处理吧,毕竟版本号字符串是固定,最长也就四段。对版本号字符串进行分
割,如果包含 '-' ,分割出前面数字的版本号,再接着对前面的数字的版本号再按 '.' 进行分割,然后开始转
换数组比较,最后再对后面发布版本号按字典顺序比较即可。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String first = in.nextLine();
String second = in.nextLine();
System.out.println(compareVersion(first, second));
}
public static String compareVersion(String first, String second) {
剩余392页未读,继续阅读
资源评论
随风浪仔
- 粉丝: 676
- 资源: 1923
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功