华为OD题目: 预订酒店

2023-11-02

预订酒店

/**

  • 预订酒店
  • 题目
  • 放暑假了,小明决定到某旅游景点游玩,他在网上搜索到了各种价位的酒店(长度为 的数组 A),
  • 他的心理价位是X元,请都他篇先出k 个最接近x 元的酒店 (n>=k>0) 并由低到高打印酒店的价格.
  • 输入
  • 第一行: n,k,x
  • 第二行: A[e] A[1] A[2]…A[n-1]
  • 输出描述
  • 从低到高打印筛选出的酒店价格
  • 示例一
  • 输入:
  • 10 5 6
  • 1 2 3 4 5 6 7 8 9 10
  • 输出:
  • 4 5 6 7 8
  • 示例二
  • 输入:
  • 10 4 6
  • 10 9 8 7 6 5 4 3 2 1
  • 输出:
  • 4 5 6 7
  • 解题思路:
  • 核心思想是排序,按照绝对值 和 价格大小
  • 如果绝对值相同 比比较数字大小 取价格较小的
  • 如果绝对值不同, 先按绝对值比较, 取绝对值小的
  • 所以list里的对象是一个只有两个数值的数组
    */
package com.darling.boot.order.od.od22;


import java.util.*;


/**
 * 预订酒店
 * <p>
 * 题目
 * 放暑假了,小明决定到某旅游景点游玩,他在网上搜索到了各种价位的酒店(长度为 的数组 A),
 * 他的心理价位是X元,请都他篇先出k 个最接近x 元的酒店 (n>=k>0) 并由低到高打印酒店的价格.
 * 输入
 * 第一行: n,k,x
 * 第二行: A[e] A[1] A[2]...A[n-1]
 * 输出描述
 * 从低到高打印筛选出的酒店价格
 *
 * 示例一
 * 输入:
 * 10 5 6
 * 1 2 3 4 5 6 7 8 9 10
 *
 * 输出:
 * 4 5 6 7 8
 *
 * 示例二
 * 输入:
 * 10 4 6
 * 10 9 8 7 6 5 4 3 2 1
 *
 * 输出:
 * 4 5 6 7
 *
 * 解题思路:
 * 核心思想是排序,按照绝对值 和 价格大小
 * 如果绝对值相同 比比较数字大小 取价格较小的
 * 如果绝对值不同, 先按绝对值比较, 取绝对值小的
 * 所以list里的对象是一个只有两个数值的数组 
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String numStr = sc.nextLine();
        String[] split = numStr.split(" ");
        int n = Integer.parseInt(split[0]);
        int k = Integer.parseInt(split[1]);
        int target = Integer.parseInt(split[2]);

        String line = sc.nextLine();
        String[] strings = line.split(" ");



        List<int[]> list = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            int price = Integer.parseInt(strings[i]);
            //数组就两个值,第一个是价格,第二个是当前价格距离心里价位的绝对值
            int[] ints = new int[2];
            ints[0] = price;
            ints[1] = Math.abs(price - target);
            list.add(ints);
        }
        //下面是排序,按照绝对值 和 价格大小
        list.sort((a1, a2) -> {
            if (a1[1] == a2[1]) {
                //如果绝对值相同 比比较数字大小 取价格较小的
                return a1[0] - a2[0];
            } else {
                //如果绝对值不同, 先按绝对值比较, 取绝对值小的
                return a1[1] - a2[1];
            }
        });
        //因为题目要 从低到高打印筛选出的酒店价格,因此要先存放res里,再排序
        List<Integer> res = new ArrayList<>();
        for (int i = 0; i < k; i++) {
            int price = list.get(i)[0];
            res.add(price);
        }
        res.sort((a1, a2) -> a1 - a2);
        StringBuilder sb = new StringBuilder();
        for (int price : res) {
            sb.append(price).append(" ");
        }
        sb.deleteCharAt(sb.length() - 1);
        System.out.println(sb);



    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为OD题目: 预订酒店 的相关文章

随机推荐

  • Kali 2020.1版本 更新不能解析域名问题解决

    Kali 2020 1版本 更新不能解析域名问题解决 问题阐述 解决方法 1 添加DNS解析服务器的ip地址 2 重启 3 kali联网即可更新
  • IC工程师入门必学《Verilog超详细教程》(附下载)

    Verilog HDL 简称 Verilog 是一种硬件描述语言 用于数字电路的系统设计 可对算法级 门级 开关级等多种抽象设计层次进行建模 Verilog 继承了 C 语言的多种操作符和结构 与另一种硬件描述语言 VHDL 相比 语法不是
  • 用U盘给虚拟机装系统——U深度

    下载一个u深度 将要安装的系统镜像放进 重装系统 创建虚拟机 按shift 修改位如下所示 按fn f10确认 选择第二个 进行磁盘分区 开始装机 完成后关机并把启动时间修改回去 如果拔出U盘后出现以下情况 把新添加的硬盘移除即可
  • 北京的三甲医院都是定点医院吗?不列入医保卡范围不能报销?

    北京有19家三甲医院看病 用医保卡实时报销 其他的三甲医院需要在蓝本上定点后 才能报销 1 中国医学科学院北京协和医院 2 首都医科大学附属北京同仁医院 3 首都医科大学宣武医院 4 首都医科大学附属北京友谊医院 5 北京大学第一医院 6
  • 不错的在线视频下载软件

    发现了一款非常好的下载在线视频软件 而且可以跨浏览器使用 它几乎支持所有的web浏览器 如IE Chrome Firefox Opera Safari等浏览器 支持Youtube Youku Ku6 6间房 凤凰卫视视频网等在线视频网站的视
  • 破解世界数学难题!GPT-4 得出P≠NP

    Datawhale干货 编辑 陈萍 来源 机器之心 这是对 LLM for Science 一次有希望的探索 对于身处科研领域的人来说 或多或少的都听到过 P NP 问题 该问题被克雷数学研究所收录在千禧年大奖难题中 里面有七大难题 大家熟
  • 一些关于CV和deeplearning的干货链接(长期更新)

    目录 yolo系列汇总 关于batch normalization的理解 各类归一化方法的总结及代码 YJango的卷积神经网络介绍 目标检测SSD讲解 关于AP PR曲线计算的理解 内附代码 生肉 英文 解释了yolov3的forward
  • vue2与vue3有什么区别?

    今天要说的vue3基本兼容我们所熟悉的vue2代码 一 两者基本的不同点 1 vue3固然是优点多多的 其3个主要的优点有 1 按需引用 2 组合式api 更加接近原生js 更加直观 3 vue3新增的set up中没有this 也就是说v
  • Android之OpenGL学习

    1 前言 本来一直就想做音视频开发这方面 包括我的毕业论文也是 可惜却太久没有接触有些陌生 遂写文章来复习 在这里有几个目标需要订下 第一个就是需要实现相机使用OpenGL ES进行渲染 第二个就是搞定实现一些初步的滤镜 第三个就是了解视频
  • 软件测试 中静态测试与动态测试的区别

    1 测试部分的不同 静态测试是指测试不运行的部分 只是检查和审阅 如规范测试 软件模型测试 文档测试等 动态测试是通常意义上的测试 也就是运行和使用软件 2 测试方式不同 静态测试 通过评审文档 阅读代码等方式测试软件称为静态测试 通过运行
  • python数字类型分为三类_Python | 数据类型

    Python让Python成为语言研究的利器Xu YangPhoneticSan学习参考 Python for Linguists Natural Language Processing with Python Introducing Py
  • 小白学加速乐的理解

    本来是想学下树美的 感觉太难了 就开始了学习加速乐的进程 网上文章挺多的 到了自己就整不起走 对大佬来说可能就是一些小知识点 无需挂齿 今天我把自己的理解做个小记录 1 2 打开抓包后 打开浏览器开发者工具 在debugger就断着了 大胆
  • 硬件电路点点滴滴“女屌逆袭”2---晶体三极管(1)

    一 晶体管基础知识 晶体管分2种 NPN PNP 晶体管通常封装为TO 92 下面是元件实物图 和 元件符合 NPN 当电压和电流被加到基极上时 NPN晶体管 其工作原理 就像水龙头 给控制开关一点压力 它就放出水来 同样给基极一定电压和电
  • PCL (再探)点云配准精度评价指标——均方根误差

    目录 一 算法原理 二 代码实现 三 代码解析 四 备注 本文由CSDN点云侠原创 原文链接 如果你不是在点云侠的博客中看到该文章 那么此处便是不要脸的爬虫 一 算法原理 见 点云配准精度评价指标 均方根误差 PCL 点云配准精度评价 点到
  • 【技术分享】搭建java项目引入外部依赖教程

    文章目录 引言 如何在linux中编译运行java程序 IDEA中新建一个简单的java工程项目并运行 IDEA中如何引入外部依赖并运行 maven引入log4j jar包 手工引入log4j jar包 如何使用命令行的方式添加外部依赖 如
  • 2021-01-07 库存锁定问题

    前言 今天同事突然问我 要是一个商品我直接下单所有库存 那么是不是要等到订单取消后另一个人才可以下单 我思考了下 确实是需要限制一下 下面是我参考的方案 方案 下单锁库存 支付锁库存 通过淘宝测试 n件以内下单是下单锁库存 n件以上是支付锁
  • 2021年华数杯数学建模A题电动汽车无线充电优化匹配研究求解全过程文档及程序

    2021年华数杯数学建模 A 题 电动汽车无线充电优化匹配研究 原题再现 电动汽车以环境污染小 噪音低 能源利用效率高 维修方便等优势深受消费者青睐 但现有电动汽车的有线充电方式操作复杂 且存在安全隐患 因此采用无线充电方式对电动汽车进行快
  • 算法——最小生成树与最短路径相关算法

    最小生成树算法 普利姆算法代码参考 https blog csdn net tingting256 article details 50471033 具体如何判断是否构成回路 举例说明 克鲁斯卡尔算法代码参考 https blog csdn
  • ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() ora.l

    小白随手记录改bug过程 if G nodes node source print type G nodes node 开始的代码 报错如标题 分析应该是将一个值与多个值或一个列表中的值相比较 匹配的原因 source是一个列表有多个值 遂
  • 华为OD题目: 预订酒店

    预订酒店 预订酒店 题目 放暑假了 小明决定到某旅游景点游玩 他在网上搜索到了各种价位的酒店 长度为 的数组 A 他的心理价位是X元 请都他篇先出k 个最接近x 元的酒店 n gt k gt 0 并由低到高打印酒店的价格 输入 第一行 n