通过率 65% · 提交 54 · 通过 35
在一个虚拟的魔法世界中,有一个专门为魔法师们提供住所的“魔法租房系统”。该系统帮助魔法师们通过不同的筛选条件,快速找到合适的住所。系统提供以下功能: 任务: 1. addRoom(id, area, price, rooms, address):添加一套编号为 `id`,面积为 `area`,月租金为 `price`,卧室数量为 `rooms`,地址为 `address`(假设格式为 `[横坐标 x, 纵坐标 y]`,即地址数组长度为2)的房源。如果系统中不存在编号为 `id` 的房源,则添加该房源并返回 `true`;如果已存在该房源,则更新对应的房源信息并返回 `false`。 2. deleteRoom(id):删除编号为 `id` 的房源。如果存在编号为 `id` 的房源,则删除该房源并返回 `true`;如果不存在该房源,则返回 `false`。 3. queryRoom(area, price, rooms, address, orderBy):查询符合以下筛选条件的房源,并根据 `orderBy` 的排序要求返回房源编号的序列: - 筛选条件: - 面积大于等于 `area`。 - 月租金小于等于 `price`。 - 卧室数量为 `rooms`。 - 排序要求:按 `orderBy` 中的排序条件依次进行排序。 - `orderBy` 是一个,每个元素是 `[parameter, order]`,表示对某个参数的排序方式: - `parameter` 表示排序的条件: - `1`:面积 (`area`) - `2`:月租金 (`price`) - `3`:地址的 (`address`) - `order` 表示排序的顺序: - `1`: - `-1`:降序 - 如果按照排序条件仍然相同,则按房源编号升序排列。 输入: - 第一行:一个整数 `Q`,表示总共的查询次数。 - 后续的 `Q` 行,每行一个命令 `cmd` 和若干参数: - `RentingSystem`:初始化租房系统。 - `addRoom`:添加房源,输入房源的详细信息: - 一个整数 `id`:房源编号。 - 一个整数 `area`:房源面积。 - 一个整数 `price`:房源月租金。 - 一个整数 `rooms`:房源卧室数量。 - 一个数组 `address`:房源坐标,输入地址数组。 - `deleteRoom`:删除房源,输入房源的 `id`。 - `queryRoom`:查询符合条件的房源,输入: - 一个整数 `area`:房源最小面积。 - 一个整数 `price`:房源最大月租金。 - 一个整数 `rooms`:房源卧室数量。 - 一个数组 `address`:查询地址,输入查询地址坐标数组。 - 一个二维数组 `orderBy`:查询结果排序条件,输入数组的长度,每个元素是 `[parameter, order]`,表示按哪个参数排序,排序方式是升序(1)或降序(-1)。 输出: - 对于每个操作,输出相应的结果: - `RentingSystem`:初始化操作,不返回参数,输出 `null`。 - `addRoom`:若房源成功添加,返回 `true`;若房源信息被更新,返回 `false`。 - `deleteRoom`:若房源成功删除,返回 `true`;若房源不存在,返回 `false`。 - `queryRoom`:返回符合条件的房源编号列表,按照 `orderBy` 中的排序条件排序,若排序条件相同,则按房源编号升序排列。如果没有符合条件的房源,返回一个包含 -1 的列表。
这类题属于华为可信认证科目一方向中「排序 / 可信」方向的高频题型,通常考察对「排序 / 可信」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
Q,表示总共的查询次数。Q 行,每行一个命令 cmd 和若干参数:
RentingSystem:初始化租房系统。addRoom:添加房源,输入房源的详细信息:
id:房源编号。area:房源面积。price:房源月租金。rooms:房源卧室数量。address:房源坐标,输入地址数组。deleteRoom:删除房源,输入房源的 id。queryRoom:查询符合条件的房源,输入:
area:房源最小面积。price:房源最大月租金。rooms:房源卧室数量。address:查询地址,输入查询地址坐标数组。orderBy:查询结果排序条件,输入数组的长度,每个元素是 [parameter, order],表示按哪个参数排序,排序方式是升序(1)或降序(-1)。RentingSystem:初始化操作,不返回参数,输出null。addRoom:若房源成功添加,返回 true;若房源信息被更新,返回 false。deleteRoom:若房源成功删除,返回 true;若房源不存在,返回 false。queryRoom:返回符合条件的房源编号列表,按照 orderBy 中的排序条件排序,若排序条件相同,则按房源编号升序排列。如果没有符合条件的房源,返回一个-1的列表。示例 1
输入示例
5 RentingSystem addRoom 3 24 200 2 0 1 addRoom 1 10 400 2 1 0 queryRoom 1 400 2 1 1 2 3 1 2 -1 deleteRoom 3
输出示例
null True True 1 3 True
RentingSystem:初始化租房系统。addRoom 第一次:房源信息 ID=3,面积=24,价格=200,卧室数=2,地址=[0,1],成功添加返回 true。addRoom 第二次:房源信息 ID=1,面积=10,价格=400,卧室数=2,地址=[1,0],成功添加返回 true。queryRoom:查询条件:面积≥1,价格≤400,卧室数=2,地址=[1,1],排序条件:3 1(按曼哈顿距离升序),2 -1(按月租金降序),返回 [1, 3]。deleteRoom:删除房源 ID=3,成功删除返回 true。示例 2
输入示例
10 RentingSystem deleteRoom 3 addRoom 3 24 200 2 0 1 addRoom 1 10 400 2 1 0 addRoom 2 20 300 3 2 2 addRoom 4 30 500 1 1 1 addRoom 5 35 700 2 3 3 addRoom 6 40 800 1 4 4 queryRoom 1 500 2 2 2 2 1 1 2 -1 queryRoom 3 100 2 2 2 2 3 1 2 1
输出示例
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
null False True True True True True True 1 3 -1
RentingSystem:初始化租房系统。deleteRoom:删除房源 ID=3,返回 false(房源不存在)。addRoom:分别添加 6 个房源,每个房源的 ID、面积、月租金、卧室数和地址信息。queryRoom 第一次:查询条件:面积≥1,月租金≤500,卧室数=2,地址=[2, 2],排序条件:1 1(按面积升序)、2 -1(按价格降序),返回 [1, 3, 2]。queryRoom 第二次:查询条件:面积≥3,月租金≤100,卧室数=2,地址=[2, 2],排序条件:3 1(按曼哈顿距离升序)、2 1(按价格升序),返回 -1(没有符合条件的房源)。© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有