首页 > 其他分享 >2239. 找到最接近 0 的数字

2239. 找到最接近 0 的数字

时间:2025-01-20 17:00:12浏览次数:1  
标签:2239 数字 nums res 元素 最小值 绝对值 数组 接近

给你一个长度为 n 的整数数组 nums ,请你返回 nums 中最 接近 0 的数字。如果有多个答案,请你返回它们中的 最大值 。

示例 1:

输入:nums = [-4,-2,1,4,8]
输出:1
解释:
-4 到 0 的距离为 |-4| = 4 。
-2 到 0 的距离为 |-2| = 2 。
1 到 0 的距离为 |1| = 1 。
4 到 0 的距离为 |4| = 4 。
8 到 0 的距离为 |8| = 8 。
所以,数组中距离 0 最近的数字为 1 。
示例 2:

输入:nums = [2,-1,1]
输出:1
解释:1 和 -1 都是距离 0 最近的数字,所以返回较大值 1 。

提示:

1 <= n <= 1000
-105 <= nums[i] <= 105

解题思路:
1.初始化结果为数组的第一个元素
2.如果当前元素的绝对值小于已知最小值的绝对值新最小值
3.如果当前元素的绝对值等于已知最小值的绝对值更新最小值为两者中较大的一个

完整代码
/**
 * Solution类提供了一个方法来找到数组中绝对值最小的元素
 * 如果存在多个绝对值最小的元素,它会返回其中最大的那个
 */
class Solution {
    /**
     * 找到并返回数组中绝对值最小的元素
     * 如果有多个绝对值最小的元素,返回其中最大的一个
     * 
     * @param nums 一个整数数组,不为空
     * @return 绝对值最小的元素,如果有多个,返回其中最大的
     */
    public int findClosestNumber(int[] nums) {
        // 初始化结果为数组的第一个元素
        int res = nums[0];
        // 遍历数组中的其他元素
        for (int i = 1; i < nums.length; i++) {
            // 如果当前元素的绝对值小于已知最小值的绝对值
            if (Math.abs(res) > Math.abs(nums[i])) {
                // 更新最小值
                res = nums[i];
            // 如果当前元素的绝对值等于已知最小值的绝对值
            } else if (Math.abs(res) == Math.abs(nums[i])) {
                // 更新最小值为两者中较大的一个
                res = Math.max(res, nums[i]);
            }
        }
        // 返回找到的最小值
        return res;
    }
}

标签:2239,数字,nums,res,元素,最小值,绝对值,数组,接近
From: https://www.cnblogs.com/java-cheng/p/18681950

相关文章

  • 写一个方法,传入数字x,从一个一维数组里找到两个数字符合“n1 + n2 = x”
    在前端开发中,你可以使用JavaScript来编写这个方法。下面是一个简单的实现,它接受一个数字x和一个一维数组arr作为参数,并尝试在数组中找到两个数字,使它们的和等于x。如果找到了这样的两个数字,它会返回一个包含这两个数字的数组;如果没有找到,它会返回null。functionfindTwoNumbersTh......
  • 掌握精准农业:企业数字化转型的核心
      掌握精准农业:企业数字化转型的核心在快速变化的时代中,精准农业已成为现代科技与传统农事融合的重要领域。通过实现智能化管理、提高生产效率以及促进可持续发展,精准农业助力企业在激烈市场竞争中占据优势。本文将探讨掌握这一核心技术如何推动企业的数字化转型,并在新阶段提......
  • C语言的应用|猜数字游戏
    目录1.引言2.rand(包含在中)3.srand(包含在中)4.time(包含在中)5.游戏代码showtime1.引言  哈喽,大家好,好久不见。今天小邓儿,将带咱们用C语言,来写一个小游戏——猜数字。不过,编写游戏之前。先给大家拓展一些相关知识点(●'◡'●)2.rand(包含在<stdlib.h>中)1.1 ......
  • 数字图像的运算(3)
    一、图像的平移closeall;%关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量clearall;clc;I=imread('lenna.bmp');%输入图像a=50;b=50;%设置平移坐标J1=move1(I,a,b);%移动原图像a=-50;b=50;%设置平移坐标J2=move1(I,a,b);%移动原图像a......
  • 数字图像的运算(2)
    一、叠加后图像C和B的差异closeall;%关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量clearall;clcA=imread('tire.tif');%读取图像tire,并赋值给A[m,n]=size(A);%获取图像矩阵A的行列数m,nB=imread('eight.tif');......
  • 【自学嵌入式(5)环形电阻、数码管、随机数字程序】
    环形电阻、数码管、随机数字程序环形电阻*概念**特点*共阴极数码管*概念*随机数字程序本篇文章将会手动搭建一个电路,使用到的硬件主要有面包板一个、若干杜邦线、UNO开发板一个、按键开关一个、一个200-500欧姆的电阻、共阴极数码管一个由于对即将要使用的环形电......
  • TensorFlow手写数字识别
     In [1]:importnumpyasnpimportmatplotlib.pyplotaspltimporttensorflowastffromsklearn.preprocessingimportStandardScalerimportpandasaspd In [2]:(x_train_all,y_train_all),(x_test,y_test)=tf.keras.datasets.mn......
  • R 实现英文数字验证码识别
    R的强大扩展生态使其也能完成OCR任务,我们将结合magick包(图像处理)和tesseract包(OCR)来实现。安装所需包在R环境中,安装以下R包:R更多内容访问ttocr.com或联系1436423940install.packages("magick")install.packages("tesseract")R实现代码编写以下R代码来完......
  • Perl 实现英文数字验证码识别
    我们将通过结合TesseractOCR和ImageMagick工具来实现图像处理和文本识别。安装依赖确保已安装以下工具和模块:TesseractOCR:用于文本识别。ImageMagick:用于图像处理。Perl模块:Image::Magick和Tesseract::OCR。在命令行中执行以下命令:bash安装TesseractOCRsudo......
  • MATLAB 实现英文数字验证码识别
    MATLAB是一个强大的数值计算和图像处理工具,结合其内置的图像处理工具箱和OCR功能,可以轻松完成验证码识别任务。前置准备安装MATLAB确保你的MATLAB版本支持OCR功能(通常需要安装ComputerVisionToolbox)。如果没有,先通过MATLAB的工具箱管理器安装该工具箱。准备验......