华为OD机试真题 Java 实现【简单的自动曝光】【2023Q1 100分】

news2024/10/6 18:22:34

在这里插入图片描述

一、题目描述

一个图像有 n 个像素点,存储在一个长度为 n 的数组 img 里,每个像素点的取值范围[0,255]的正整数。

请你给图像每个像素点值加上一个整k(可以是负数),得到新图 newlmg,使得新图 newlmg 的所有像素平均值最接近中位值 128。

请输出这个整数 k。

二、输入描述

n 个整数,中间用空格分开。

三、输出描述

一个整数 k。

四、备注

1 <= n <= 100。

如有多个整数 k 都满足,输出小的那个 k;

新图的像素值会自动截取到[0,255]范围。当新像素值<0,其值会更改为0,当新像素值>255,其值会更改为 255:例如 newlmg=”-1 -2 256”,会自动更改为”0 0 255"

五、Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String str = sc.nextLine();
    int[] nums = Arrays.stream(str.split(" ")).mapToInt(Integer::parseInt).toArray();

    // 输入数字个数
    int num = nums.length;
    double diff = Integer.MAX_VALUE;

    Integer ret = null;
    for (int k = -127; k <= 128; k++) {
        double sum = 0;
        for (Integer val : nums) {
            int temp = val + k;
            // 像素大于255时,取255
            temp = Math.min(temp, 255);
            // 像素小于0时,取0
            temp = Math.max(0, temp);
            sum += temp;
        }

        double tempDiff = Math.abs(sum / num - 128);
        if (tempDiff < diff) {
            diff = tempDiff;
            ret = k;
        } else if (tempDiff == diff && ret != null) {
            // 多个整数 k 都满足,返回小的
            ret = Math.min(ret, k);
        }
    }
    System.out.println(ret);
}

六、效果展示

1、输入

0 0 0 0

2、输出

128

3、说明

每个加128,都为128,最接近128。哈哈~~

在这里插入图片描述

有的人会说,哪有这么简单的事情~~

4、再输入

120 122 130 150

5、输出

-3

6、说明

当为-2时,变为118 120 128 148,中位数是128.5。

当为-3时,变为117 119 127 147,中位数是127.5。

输出较小的数-3。

在这里插入图片描述


🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/529881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

响应式设计和移动端优化:如何实现页面在不同设备上的适配和优化

章节一&#xff1a;介绍响应式设计和移动端优化 响应式设计是一种使网页能够自适应不同设备和屏幕尺寸的设计方法。它通过使用流式网格布局、媒体查询和弹性图片等技术&#xff0c;使得网页能够在不同分辨率和设备上呈现出最佳的布局和用户体验。 移动端优化则是针对移动设备…

青训营 x 训练营结营测试题目(前端方向)

文章目录 &#x1f4cb;前言&#x1f3af;选择题&#xff08;含多选&#xff09;&#x1f4dd;最后 &#x1f4cb;前言 这篇文章的内容是23年6月青训营 x 训练营结营题目&#xff0c;题目一共有25题&#xff0c;题目类型为选择题&#xff0c;包括了单选题和多选题&#xff0c;…

WiFi(Wireless Fidelity)基础(十二)

目录 一、基本介绍&#xff08;Introduction&#xff09; 二、进化发展&#xff08;Evolution&#xff09; 三、PHY帧&#xff08;&#xff08;PHY Frame &#xff09; 四、MAC帧&#xff08;MAC Frame &#xff09; 五、协议&#xff08;Protocol&#xff09; 六、安全&#x…

VHDL直流电机模糊控制器的设计与实现

在直流电机控制策略方面,属于智能控制理论的模糊控制其突出优点在于它不依赖于被控对象的模型,因此本设计尝试将模糊控制理论应用于直流电机转速控制,并将模糊控制器实现于FPGA(Field Programmable Gate Array)芯片上。在实现方法上本设计采用模糊查表控制法实现模糊控制器…

【C++】-static在类和对象中的作用和细节(下)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 ❤️‍&#x1fa79;作者宣言&#xff1a;认真写好每一篇博客 &#x1f4a8;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 文章目录 前言 前言 今天我们来讲一个static对类的对象的作用…

安全基础第十二天:nginx相关配置和nginx-host绕过

目录 一、nginx的动静分离 1.动静分离的原理 2.动静分离实验&#xff08;centos做为放置静态资源的服务器&#xff0c;ubuntu做为请求的web服务器&#xff09; &#xff08;1&#xff09;在centos的/usr/local/nginx/html下创建一个静态文件static &#xff08;2&#xff09…

目标检测概述

传统目标检测 任务目标 从图像中找出相应的物体位置 目标检测的核心目的在于&#xff0c;估计出目标在图像中的坐标。 问题定义 目标检测的结果是什么&#xff1f; 预测出目标在图像中的位置。 位置如何表示&#xff1f; 通常采用水平矩形框的形式估计目标。 在opencv中…

为什么Java要求多用组合,少用继承?

前言&#xff1a; 最近有一个要好的朋友去阿里大厂面试Java高级工程师&#xff0c;在第二轮面试的过程中&#xff0c;面试官提了一个问题&#xff1a;“解释下Java项目中为什么要求多用组合&#xff0c;少用继承&#xff1f;”。朋友觉得这个题目既熟悉&#xff0c;又陌生&…

【LeetCode】504. 七进制数

504. 七进制数&#xff08;简单&#xff09; 方法一&#xff1a;七进制数预处理 思路 这里我利用了提示&#xff0c;得知 |num| < 10^7 &#xff0c;因此所使用到的七进制数肯定也小于等于 107 &#xff0c;我将 7 的次方数算出来&#xff0c;预存在数组 seven 中。 后续…

ADUC834BSZ-ASEMI代理亚德诺ADUC834BSZ原厂芯片

编辑-Z ADUC834BSZ特征&#xff1a; 2个独立ADC&#xff08;16位和24位分辨率&#xff09; 24位无缺失代码&#xff0c;主ADC 21位rms&#xff08;18.5位p-p&#xff09;有效分辨率20 Hz 偏移漂移10 nV/C&#xff0c;增益漂移0.5 ppm/C 62 KB片上闪存/EE程序存储器 4 KB…

C++(Qt)读取.mat文件(可以读取多级变量)

全网最全&#xff0c;从安装环境和配置环境变量&#xff08;配置环境变量是大坑&#xff09;&#xff0c;然后再到需要的SDK库&#xff0c;再到代码详细解读。 首先就是需要安装matlab&#xff0c;注意&#xff1a;你使用的编译器版本需要和MATLAB版本相互兼容&#xff01;&am…

使用模板构建泛型栈

目录 一.构造栈 使用构造函数 代码&#xff1a; 二.销毁栈 使用析构函数 代码 三.判空&#xff0c;判满 四.扩容 代码 五.入栈&#xff0c;出栈 代码 六.取栈顶元素 代码 代码合集 template< class T>模板 T为当前栈的数据类型 栈类型有三个属性&#x…

Linux:概述 、安装 、文件与目录结构 、vim编辑器 、网络配置 、远程登录 、系统管理 、基础命令 、软件包管理 、克隆虚拟机 、shell编程

1、课程介绍 2、Linux概述(入门篇) 2.1、Linux的诞生 2.1.1、Linux是什么? Linux是一个操作系统&#xff08;OS&#xff09; 所谓的操作系统就是直接用来操作计算机底层硬件的软件。 2.1.2、Linux的出现 2.2、Linux和Unix的渊源 2.3、GNU/Linux 2.4、Linux VS Windows 3、…

机器学习期末复习 决策树ID3的计算与构建

ID3构建的流程就是参考书上的那个伪代码。 1&#xff09; 开始&#xff1a;构建根节点&#xff0c;将所有训练数据都放在根节点&#xff0c;选择一个最优特征&#xff0c;按着这一特征将训练数据集分割成子集&#xff0c;使得各个子集有一个在当前条件下最好的分类。 2&#xf…

愿力,心力,能力

愿力&#xff0c;心力&#xff0c;能力 三力合一成点事 趣讲大白话&#xff1a;人与人的力量差别大 【趣讲信息科技165期】 *************************** 愿力是人文东方智慧 西方大概是mission使命之类 比如佛家发愿 儒家大概类似于立志 心力也是人文东方智慧 西方大概是意志…

51单片机(十七)红外遥控(外部中断)

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

基于ssm的汽车服务平台

基于ssm的汽车售后服务平台 快速链接 基于ssm的汽车售后服务平台功能模块技术栈硬件环境功能截图 功能模块 用户 注册功能&#xff1a;用户通过注册功能进行访问平台预约服务功能&#xff1a;用户可以预约服务预约记录查询&#xff1a;用户可以查询自己预约记录也可以进行修改…

AIGPT中文版(人人都能使用的GPT工具)生活工作的好帮手。

AIGPT简介 AIGPT是一款非常强大的人工智能技术的语言处理工具软件&#xff0c;它具有 AI绘画 功能、AI写作、写论文、写代码、哲学探讨、创作等功能&#xff0c;可以说是生活和工作中的好帮手。 我们都知道使用ChatGPT是需要账号以及使用魔法的&#xff0c;其中的每一项对我们…

【框架源码】Spring底层IOC容器加入对象的方式

1.Spring容器加入对象方式简介 使用XML配置文件 在XML配置文件中使用< bean >标签来定义Bean&#xff0c;通过ClassPathXmlApplicationContext等容器来加载并初始化Bean。 使用注解 使用Spring提供的注解&#xff0c;例如Component、Service、Controller、Repository等注…

学习Python的day.14

模块学习 什么是模块&#xff1a; 打开Python解释器&#xff0c;定义了data 1&#xff0c; 然后去访问data是可以访问到的&#xff1b;关闭Python解释器&#xff0c;再打开&#xff0c;再去访问data&#xff0c;访问不到了。 假设我有1000行的代码&#xff0c;在python解释器…