找出整數陣列中兩個數差值的絕對值最小

2021-04-15 22:01:38 字數 898 閱讀 7297

有乙個整數陣列,請求出兩兩之差絕對值最小的值,記住,只要得出最小值即可,不需要求出是哪兩個數。 下面是乙個結髮了,利用了stl 的sort 來晚成排序。

#include 

<

iostream

>

#include 

<

vector

>

#include 

<

ctime

>

#include 

<

cstdio

>

#include 

<

cmath

>

using

namespace

std;

#define

n 100

#define

m 200

intinline dis(

inta, 

intb)

void

print(

int&

a)int

main()

if(!

tmp) ...

if(tmp 

<

min ) min 

=tmp;

}cout 

<<

endl 

<<

"minimal distance is : 

"<<

min 

<<

endl;

return0;

} 看過有這樣的一種解法,找出陣列中最大值和最小值,把所有的數map 到這個區間的bit 陣列中。 那麼兩個相鄰的bit 為 1 的兩個bit 位置的差值最小的就是這個值。如果有相同的數值,那麼會map 到乙個bit 位上,那麼最小的絕對值就是 0 了。

找出整數陣列中兩個數差值的絕對值最小

原文 有乙個整數陣列,請求出兩兩之差絕對值最小的值,記住,只要得出最小值即可,不需要求出是哪兩個數。下面是乙個結髮了,利用了stl 的sort 來晚成排序。include iostream include vector include ctime include cstdio include cma...

給定乙個整數陣列,找出其中兩個數相加等於目標值

兩層遍歷,最直觀 時間複雜度 o n n 實現 public int twosum int numbers,int target return result 時間複雜度 o n 第一遍遍歷 將 target a 和i 作為鍵值對,存入hash表,遍歷時間複雜度為o n 第二遍遍歷 查詢在hash表中...

給定乙個整數陣列,找出其中兩個數相加等於目標值

example given nums 2,7,11,15 target 9,because nums 0 nums 1 2 7 9,return 0,1 題目的意思 在無序的陣列中找兩個數,使得這兩個數之和與給定的目標值相等,返回這兩個數的下標。大佬們的做法 下面 不是好的實現方法,可以用hash表...