Two sum: Difference between revisions
Content deleted Content added
→{{header|zkl}}: sort arrays |
→{{header|zkl}}: re factor |
||
Line 80:
=={{header|zkl}}==
The sorted O(n) no external storage solution:
<lang zkl>fcn twoSum(sum,ns){
Utils.Helpers.combosKW(2,ns).filter('wrap([(a,b)]){ a+b==sum }) // lazy combos▼
foreach i,j in (m,[ns.len()-1..m,-1]){ // make sure to see middle number
}▼
}</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){
▲ Utils.Helpers.combosKW(2,ns).filter('wrap([(a,b)]){ a+b==sum }) // lazy combos
▲ rs:=List();
▲ if(ns[i] + ns[j] == sum) rs.append(T(i,j));
▲ }
}</lang>
<lang zkl>
{{out}}
<pre>
|