Skip to content

Instantly share code, notes, and snippets.

@adamblank
Last active October 9, 2016 06:20
Show Gist options
  • Save adamblank/4842d7785c913a6296a8 to your computer and use it in GitHub Desktop.
Save adamblank/4842d7785c913a6296a8 to your computer and use it in GitHub Desktop.
var arr = [1, 7, 3, 4];
var brute = function(arr) {
var i = 0;
var final_arr = [];
var temp_arr;
var j;
for (i; i < arr.length; i++) {
temp_arr = arr.slice();
temp_arr.splice(i, 1);
final_arr.push(temp_arr[0]);
for (j = 1; j < temp_arr.length; j++) {
final_arr[final_arr.length - 1] *= temp_arr[j];
}
}
return final_arr;
}
var nPlus = function(arr) {
var i = 0;
var final_arr = [];
var j;
var total_trailing_mult = 1;
for (i; i < arr.length; i++) {
final_arr.push(total_trailing_mult);
for (j = i+1; j < arr.length; j++) {
final_arr[final_arr.length - 1] *= arr[j];
}
total_trailing_mult *= arr[i];
}
return final_arr;
}
var n = function(arr) {
var i = 0;
var final_arr = Array.apply(null, Array(arr.length)).map(function() { return 1 })
var total_trailing_mult = 1;
var total_leading_mult = 1;
for (i; i < arr.length; i++) {
final_arr[i] *= total_trailing_mult;
final_arr[(arr.length - 1) - i] *= total_leading_mult;
total_trailing_mult *= arr[i];
total_leading_mult *= arr[(arr.length - 1) - i];
}
return final_arr;
}
console.log(n(arr));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment