华为OD机试真题 Java 实现【预定酒店】【2022Q4 100分】

在这里插入图片描述

一、题目描述

放暑假了,小明决定到某旅游景点游玩,他在网上搜索到了各种价位的酒店(长度为n的 数组A),他的心理价位是x元,请帮他筛选出k个最接近x元的酒店 (n>=k>0) ,并由低到高打印酒店的价格。

二、输入描述

第一行: n,k,x
第二行: A[o] A[1] A[2]…A[n-1]

三、输出描述

从低到高打印筛选出的酒店价格。

四、解题思路

  1. 读取输入的酒店数量 hotelCount,选择数量 selectCount,和心理价位 targetPrice;
  2. 创建一个大小为 hotelCount 的整数数组 priceArr,用于存储酒店价格;
  3. 循环读取 hotelCount 个价格,并将其存储到 priceArr 数组中;
  4. 对 priceArr 数组进行排序,以便按价格从低到高进行处理;
  5. 创建一个 ArrayList,用于存储每个酒店价格与心理价位的差值;
  6. 遍历排序后的 priceArr 数组,计算每个酒店价格与 targetPrice 的差值,并将酒店价格和差值存储到 ArrayList 中;
  7. 根据差值对 ArrayList 进行排序,如果差值相同,则按价格从低到高进行排序;
  8. 创建一个 ArrayList,用于存储

你可能感兴趣的:(java,华为,算法,学习,后端)