最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ù)之和絕對值最小的評論 (共 條)

分享到微博請遵守國家法律
东海县| 冀州市| 花莲市| 新巴尔虎左旗| 平罗县| 江源县| 喀喇沁旗| 临武县| 松溪县| 亚东县| 贵定县| 芮城县| 青神县| 老河口市| 德保县| 天镇县| 洛南县| 琼海市| 星座| 博湖县| 秭归县| 根河市| 多伦县| 汝阳县| 玉林市| 黑龙江省| 建宁县| 镇远县| 嘉义县| 卢龙县| 西华县| 江安县| 鹤壁市| 东莞市| 瑞安市| 东明县| 夏邑县| 赤壁市| 故城县| 长垣县| 古丈县|