差值中位數(二分法)

2021-10-04 03:47:15 字數 1093 閱讀 8424

給出乙個長度為 n 的陣列 a,並用這個陣列生成乙個新陣列 ans[i],滿足ans=abs(a[i]-a[j])(i != j),求出陣列 ans 的中位數。

輸入要求:

多組輸入,每次輸入乙個 n ,表示有 n 個數,之後輸入乙個長度為n的序列 a。

輸出要求:

輸出新陣列ans的中位數

sample input:

413

2431

102

sample output:

1

8

int

find

(int t)

else

}return ans;

}bool

check

(int val)

return count > m;

}

#include

#include

#include

using

namespace std;

int a[

100000];

int m, n;

int ans =-1

;int

find

(int t)

else

}return ans;

}bool

check

(int val)

return count > m;

}int

main()

sort

(a, a + n)

; m = n *

(n -1)

/4;int l =

0, r = a[n -1]

- a[0]

;while

(l <= r)

else

} cout << ans << endl;

}}

LeetCode 滑動視窗中位數(二分法)

中位數是有序序列最中間的那個數。如果序列的大小是偶數,則沒有最中間的數 此時中位數是最中間的兩個數的平均數。例如 2,3,4 中位數是 3 2,3 中位數是 2 3 2 2.5 給出乙個陣列 nums,有乙個大小為 k 的視窗從最左端滑動到最右端。視窗中有 k 個數,每次視窗移動 1 位。你的任務是...

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

python二分法查詢 Python 二分法查詢

二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...