求陣列中相差最小的兩個數O N

2021-09-19 03:53:14 字數 471 閱讀 5637

基本思想:

1. 遍歷該陣列 ,找出該陣列中最小和最大值,則所求的兩個整數的差值一定小於等於max - min;

2. 從頭開始 , 乙個乙個元素與(max + min) / 2 比較,如果小於,則表示所求的兩個整數的差值介於min 到 a[i]之間 ,更新max = a[i] ,如果大於,則表示所求的兩個整數的差值介於a[i]到max之間 ,更新min = a[i] ;  如果小於min或者大於max ,continue

3. 最後結果為更新後的max和min

public static int mindiffoftwonum(int  a) 

system.out.println("min = " + min + "max = " + max);

for(int i = 0; i < a.length; i++)

return max - min;

}

求陣列兩個數的和的索引

做了一道題,有乙個有序陣列a,包含n個元素 a1,a2,an 找出相加等於x的兩個數的下標 我看到這道題,第乙個想法是,這兩個數肯定不止一樣的,不管它要求是返回乙個就行還是返回所有,我都返回所有。我用python語言實現,借鑑二分查詢法,複雜度nlogn,不知道有沒大神有更好的解法,我只能做到這了。...

交換兩個陣列使兩個陣列和的差最小

有兩個陣列a,b,大小都為n,陣列元素的值任意整形數,無序 要求 通過交換a,b中的元素,使 陣列a元素的和 與 陣列b元素的和 之間的差最小。求解思路 當前陣列a和陣列b的和之差為 a sum a sum b a的第i個元素和b的第j個元素交換後,a和b的和之差為 a sum a a i b j ...

交換兩個陣列使兩個陣列和的差最小

有兩個陣列a,b,大小都為n,陣列元素的值任意整形數,無序 要求 通過交換a,b中的元素,使 陣列a元素的和 與 陣列b元素的和 之間的差最小。求解思路 當前陣列a和陣列b的和之差為 a sum a sum b a的第i個元素和b的第j個元素交換後,a和b的和之差為 a sum a a i b j ...