Re: [問題] 程式考試時的拿捏
※ 引述《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--;
} else if (sum < target) {
l++;
}
} while (sum != target);
std::cout <<"index1=" << l + 1 << ", index2=" << r + 1 << std::endl;
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.122.83.198
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1436846387.A.525.html
推
07/14 12:07, , 1F
07/14 12:07, 1F
→
07/14 13:03, , 2F
07/14 13:03, 2F
推
07/14 18:11, , 3F
07/14 18:11, 3F
推
07/14 21:32, , 4F
07/14 21:32, 4F
→
07/14 21:32, , 5F
07/14 21:32, 5F
推
07/14 21:45, , 6F
07/14 21:45, 6F
→
07/14 21:46, , 7F
07/14 21:46, 7F
→
07/14 21:46, , 8F
07/14 21:46, 8F
→
07/14 21:47, , 9F
07/14 21:47, 9F
→
07/14 21:55, , 10F
07/14 21:55, 10F
→
07/14 21:56, , 11F
07/14 21:56, 11F
→
07/14 22:13, , 12F
07/14 22:13, 12F
→
07/14 22:14, , 13F
07/14 22:14, 13F
→
07/14 22:26, , 14F
07/14 22:26, 14F
推
07/15 01:15, , 15F
07/15 01:15, 15F
→
07/16 14:03, , 16F
07/16 14:03, 16F
推
07/16 15:15, , 17F
07/16 15:15, 17F
推
07/16 15:17, , 18F
07/16 15:17, 18F
→
07/18 09:31, , 19F
07/18 09:31, 19F
→
07/18 12:09, , 20F
07/18 12:09, 20F
討論串 (同標題文章)