Two sum: Difference between revisions
Content added Content deleted
(→{{header|zkl}}: sort arrays) |
(→{{header|zkl}}: re factor) |
||
Line 80: | Line 80: | ||
=={{header|zkl}}== |
=={{header|zkl}}== |
||
The sorted O(n) no external storage solution: |
|||
I think this is O(n!), The double loop solution is O(n^2). These two solutions don't care if the array is sorted |
|||
<lang zkl>fcn twoSum(sum,ns){ |
<lang zkl>fcn twoSum(sum,ns){ |
||
⚫ | |||
⚫ | |||
foreach i,j in (m,[ns.len()-1..m,-1]){ // make sure to see middle number |
|||
.apply('wrap([(a,b)]){ return(ns.index(a),ns.index(b)) }) |
|||
⚫ | |||
⚫ | |||
}</lang> |
}</lang> |
||
<lang zkl>twoSum2(21,T(0,2,11,19,21,90)).println(); |
|||
twoSum2(25,T(0,2,11,19,21,90)).println();</lang> |
|||
{{out}} |
|||
<pre> |
|||
L(1,3) |
|||
False |
|||
</pre> |
|||
The unsorted O(n!) all solutions solution: |
|||
<lang zkl>fcn twoSum2(sum,ns){ |
<lang zkl>fcn twoSum2(sum,ns){ |
||
⚫ | |||
⚫ | |||
.apply('wrap([(a,b)]){ return(ns.index(a),ns.index(b)) }) |
|||
⚫ | |||
⚫ | |||
rs |
|||
}</lang> |
}</lang> |
||
<lang zkl> |
<lang zkl>twoSum2(21,T(0,2,11,19,21,90)).println(); |
||
twoSum2(25,T(0,2,11,19,21,90)).println();</lang> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |