給出乙個整數k和乙個無序陣列a,a的元素為n個互不相同的整數,找出陣列a中所有和等於k的數對。例如k = 8,陣列a:,所有和等於8的數對包括(-1,9),(0,8),(2,6),(3,5)。
input
第1行:用空格隔開的2個數,k n,n為a陣列的長度。(2 <= n <= 50000,-10^9 <= k <= 10^9)output第2 - n + 1行:a陣列的n個元素。(-10^9 <= a[i] <= 10^9)
第1 - m行:每行2個數,要求較小的數在前面,並且這m個數對按照較小的數公升序排列。input示例如果不存在任何一組解則輸出:no solution。
8 9-16output示例5342
908
-1 90 82 6
3 5這道題超時了好久,雙重for迴圈時間複雜度n2,最後幾個資料太大,會超時。應該對for迴圈進行優化,使用二分查詢即可。被坑了好久。
first try:
1 #include 2 #include 3using
namespace
std;
4int
main()515
int flag = 0
;16 sort(a, a +n2);
17for(long
long i = 0; i < n2; i ++) 26}
27}28if(!flag)
31 }
second try:
1 #include 2 #include 3using
namespace
std;
4long
long a[50001];5
int find(long
long n, long
long x, long
long
z) else
if(x >a[m]) else22}
23return
false;24
}25intmain()
2635
int flag = 0
;36 sort(a, a +n2);
37for(long
long i = 0; i < n2; i++)
43}
44if(!flag)
4748 }
1001 陣列中和等於K的數對
1001 陣列中和等於k的數對 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給出乙個整數k和乙個無序陣列a,a的元素為n個互不相同的整數,找出陣列a中所有和等於k的數對。例如k 8,陣列a 所有和等於8的數對包括 1,9 0,8 2,6 3,5 input 第1...
1001 陣列中和等於K的數對
基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給出乙個整數k和乙個無序陣列a,a的元素為n個互不相同的整數,找出陣列a中所有和等於k的數對。例如k 8,陣列a 所有和等於8的數對包括 1,9 0,8 2,6 3,5 input 第1行 用空格隔開的2個數,k n,...
51nod1001 陣列中和等於k的數對
1001 陣列中和等於k的數對 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給出乙個整數k和乙個無序陣列a,a的元素為n個互不相同的整數,找出陣列a中所有和等於k的數對。例如k 8,陣列a 所有和等於8的數對包括 1,9 0,8 2,6 3,5 input 第1...