G'day NetWallah,
"After adding this test case: [[-5,-3,1,4,7], 1, [1,3]], kcott's code fails that test case, but mine passes."
Well spotted and thanks for reporting the bug.
I had added
next INNER if $input->[$j] > $target;
on the basis that a single comparison was less processing than the addition plus comparison in
if ($input->[$i] + $input->[$j] == $target) {
I thought that was a handy logic short-circuit; however, I hadn't taken into account negative numbers. I've removed that line and the INNER label: all tests now pass.
"Also - kcott's code assumes and takes advantage of the input being sorted - input order is NOT specified in the problem definition."
I don't know where you got that idea from. I neither made that assumption nor wrote any code taking advantage of such sorting. Note [[3,2,4], 6, [1,2]] which has unsorted input.
— Ken
In reply to Re^2: LeetCode Problem #1 - Two Sum - Improve and/or discuss.
by kcott
in thread LeetCode Problem #1 - Two Sum - Improve and/or discuss.
by kcott
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |