找元組中差值最大最小個數

2022-07-12 02:36:15 字數 773 閱讀 5624

題目:有n個數,兩兩組成二元組,相差最小的有多少對呢?相差最大呢?

例如 ar = ,返回 1   1

br = ,返回 2  1

我的思路是將元素兩兩做差,將差值儲存在乙個陣列內,把陣列進行排序,即可找出最小差值多少個,最大差值多少個。(看起來我的時間空間複雜度低不了)

#include#include#includeusing namespace std;

void func(int n, int ar, int br)

} sort(vec.begin(), vec.end());

for(auto i=vec.begin(); i!=vec.end(); ++i)

cout<

cout執行結果

因該還有更好地思路來節省空間時間

於是我換了一種思路,在每次拿到差值的時候就比較它是不是最大或最小值,是就計數,不是就跳過得到下面的演算法

#include#include#includeusing namespace std;

void func(int n, int ar, int br)

else if(tmp==max)

else continue;

} }br[0]=minc;

br[1]=maxc;

}int main()

, br[2]=;

func(sizeof(ar)/sizeof(ar[0]), ar, br);

cout<

執行結果

看起來節省了空間

mysql 兩元組的差值 找元組中差值最大最小個數

題目 有n個數,兩兩組成二元組,相差最小的有多少對呢?相差最大呢?例如 ar 返回 1 1 br 返回 2 1 我的思路是將元素兩兩做差,將差值儲存在乙個陣列內,把陣列進行排序,即可找出最小差值多少個,最大差值多少個。看起來我的時間空間複雜度低不了 include include include u...

在乙個陣列中找差值最大數對,輸出最大差值

題目 乙個陣列,找乙個數對,使得兩個數對之差最大,並且較大數在較小數之前,要求時間複雜度為o n 解決方法 動態規劃,額外定義兩個陣列,temp max temp i 用來儲存,從開始到下標為i的元素位置,最大數對之差 max i 用來儲存,從開始到下標為i的元素位置,最大值 i 0時 temp i...

求陣列中的最大差值或最小差值

給出長度為n的整數陣列arr n 有n個整數,求出陣列中兩個數的最大差值。可以先求出最大值和最小值,在一輪迴圈中求出最大值和最小值,時間複雜度就是o n 兩者之差就是差值最大的。求最小差值也是類似的。include unsigned intmax difference const int arr,u...