※ 引述《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