国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

華為OD機試-- 亂序整數(shù)序列兩數(shù)之和絕對值最小

2023-09-16 09:36 作者:天生完美  | 我要投稿

題目

給定一個隨機的整數(shù)(可能存在正整數(shù)和負(fù)整數(shù))數(shù)組 nums,請你在該數(shù)組中找出兩個數(shù),其和的絕對值(|nums[x]+nums[y]|)為最小值,并返回這個兩個數(shù)(按從小到大返回)以及絕對值。

每種輸入只會對應(yīng)一個答案。

但是,數(shù)組中同一個元素不能使用兩遍。

輸入描述

一個通過空格分割的有序整數(shù)序列字符串,最多1000個整數(shù),且整數(shù)數(shù)值范圍是 [-65535, 65535]。

輸出描述

兩數(shù)之和絕對值最小值


示例1 輸入輸出示例僅供調(diào)試,后臺判題數(shù)據(jù)一般不包含示例

輸入

-1 -3 7 5 11 15

輸出

-3 5 2

說明

因為 |nums[0] + nums[2]| = |-3 + 5| = 2 最小,所以返回 -3 5 2。


思路

1:兩個數(shù)字的之和絕對值最小,那么有以下幾種情況

  • 兩個數(shù)字都是負(fù)數(shù),那么是最大的倆負(fù)數(shù)的和的絕對值最小。

  • 兩個數(shù)字都是正數(shù),那么是最小的倆整數(shù)的和的絕對值最小。

  • 一個數(shù)是負(fù)數(shù)一個數(shù)是正數(shù),此時情況需要特殊處理。因為需要絕對值最小,那么對于一個負(fù)數(shù) -N 顯然想找 +N ,? 我們遇到一個負(fù)數(shù)x,需要找非負(fù)數(shù)區(qū)的最接近于|x|的的那個數(shù)。

2:分類討論完之后就簡單了,先給數(shù)組排好序。對于第一種和第二種情況,一個比較核心的操作:找到最靠近或者等于0的位置。因為只有找到絕對值最小的位置,后面才好判斷選哪個數(shù)。

3:可以看到上面三種情況可以抽象出一個方法,找到一個排序數(shù)組中最靠近目標(biāo)數(shù)target的位置-> 明顯就退化成比較簡單的二分查找問題。

4:二分查找的基本工作原理:將要查找的元素一分為兩半然后一半一半的查找

? ? ? ? 通過不停的縮小查找范圍,改變L,R M,,直到它們?nèi)谝粋€元素上,并且這個元素等于查找元素,每次L和R移動的步長為1,我們這里是找到最靠近的即可。


Java 實現(xiàn):https://renjie.blog.csdn.net/article/details/130667202

Python實現(xiàn):https://renjie.blog.csdn.net/article/details/128357837

C++ 實現(xiàn):https://renjie.blog.csdn.net/article/details/127195062

JavaScript實現(xiàn):https://renjie.blog.csdn.net/article/details/130667212

C實現(xiàn):https://renjie.blog.csdn.net/article/details/130495591

華為OD機試-- 亂序整數(shù)序列兩數(shù)之和絕對值最小的評論 (共 條)

分享到微博請遵守國家法律
天峻县| 汝州市| 静海县| 孟连| 黄平县| 余江县| 遂平县| 建阳市| 普宁市| 迭部县| 新平| 旅游| 苗栗县| 尼木县| 会泽县| 武平县| 大悟县| 邓州市| 镇安县| 米脂县| 扎兰屯市| 英吉沙县| 晋中市| 江门市| 清流县| 吕梁市| 陆丰市| 新安县| 托克逊县| 武鸣县| 纳雍县| 西安市| 阿勒泰市| 独山县| 北安市| 广水市| 孟连| 芦溪县| 济阳县| 织金县| 清水县|