Sagivf
BAN USER
My solution in JavaScript - not sure about the time complexity.
(function(){
window.subsetToZero = function(arr){
var i,
j,
k,
subsets = [],
sums = [];
for (i=0; i < arr.length; i++){
sums.push([0]);
for (j=0; j < sums.length; j++){
for (k=0; k <= i; k++){
sums[j][k] += arr[i];
if (sums[j][k] === 0){
subsets.push([j, i]);
}
}
}
}
return subsets;
}
})();
Same solution in JavaScript:
(function(){
var res,
arr;
var display = function(n) {
var str = "";
for(var i=0; i < n ; i++)
{
str += arr[i];
if (i < n-1) {
str += ",";
}
}
console.log(str);
}
window.subsetToN = function(n, i, kk){
i = i || 0;
kk = kk || n - 1;
if (i == 0){
res = [];
arr = [];
}
if (n == 0) {
display(i);
res.push(arr.slice(0, i));
}
else if(n > 0) {
var k;
for (k = 1; k <= kk; k++)
{
arr[i]= k;
subsetToN(n-k, i+1,k);
}
}
return res;
}
})();
My answer in JavaScript
- Sagivf November 19, 2013