作者:
Feis (永遠睡不著 @@)
2015-07-14 11:59:44※ 引述《EdisonX (卡卡獸)》之銘言:
: 單純想討論算法。
: 1. sort (number ) , O(nlogn)
: 2. i = 0 : n-1
: (2.1) if( number[i] ) > target ) goto end
: (2.2) slack = target - number[i] ;
: (2.3) search ( number + i + 1, number + n , i)
: 這種算法整體應該也還是 O(nlogn) , 概要約如下。
<deleted>
: 不知道有沒有更好的作法? 另若是改成 (3個數之合) , (4個數之合) 為target 的話 ,
: 我也死在牆上了 XD
假設已經排完序了,題目也保證一定有一組解,且只需要找出一組解.
那應該是夾起來就好 ?
auto numbers = std::array<int, 4>{2, 7, 11, 15};
int target = 9;
int l = 0;
int r = numbers.size() - 1;
int sum;
do {
sum = numbers[l] + numbers[r];
if (sum > target) {
r
作者:
EdisonX (卡卡獸)
2015-07-14 21:55:00耶 ... 我的意思是 , 這題目就算沒排序過 , 也可以轉換成有排序過的 , 複雜度頂多變成 O(nlogn) , 還是有效的解法