Skip to content

Instantly share code, notes, and snippets.

@OneCent01
OneCent01 / PascalsTriangle
Created May 25, 2017 16:51
Attempt at pascal's triangle
var generate = function(numRows) {
var result = [];
for(var i = 1; i <= numRows; i++) {
var inner = [];
for(var j = 0; j < i; j++) {
inner.push(Math.abs(j + 1));
}
if (j%2 > 0) {
for(var q = i - 1; q >= 1; q--) {
inner.push(Math.abs(q));
@OneCent01
OneCent01 / pascalsTriangle
Created May 25, 2017 16:58
Pascal's Triangle attempt
var generate = function(numRows) {
var result = [];
for(var i = 1; i <= numRows; i++) {
var inner = [];
for(var j = 0; j < i; j++) {
inner.push(Math.abs(j + 1));
}
for(var q = i - 1; q >= 1; q--) {
inner.push(Math.abs(q));
@OneCent01
OneCent01 / Hashtabe initialization
Last active June 11, 2017 22:16
initialization of hastable
var HashTable = function(limit=8) {
this._limit = limit;
this._storage = [];
this._count = 0;
}
//this._storage = [/*container*/[/*bucket*/], [[/*tuple*/], []]]
String.prototype.hashCode = function(max){
var hash = 0;
if (!this.length) return hash;
for (i = 0; i < this.length; i++) {
char = this.charCodeAt(i);
hash = ((hash<<5)-hash)+char;
hash = hash & hash; // Convert to 32bit integer
}
return Math.abs(max?hash%max:hash);
};
@OneCent01
OneCent01 / Hashtable insert value
Last active January 21, 2019 08:07
Javascript implementation of an insert value method for hashtables
HashTable.prototype.add = function(key, value) {
var index = key.hashCode();
var tuple = [key, value];
var bucket = this._storage.get(index);
if (bucket) {
for (var i = 0; i < bucket.length; i++) {
if (bucket[i][0] === key) {
bucket[i][1] = value;
} else {
bucket.push(tuple);
@OneCent01
OneCent01 / retrieve hashtable value
Created June 11, 2017 22:32
retrieve method for hash table value retrieval in Javascript
HashTable.prototype.retrieve = function(key) {
var index = key.hashCode();
var bucket = this._storage.get(index);
for (var i = 0; i < bucket.length; i++) {
if (bucket[i][0] === key) {
return bucket[i][1];
}
}
};
class CashAmount {
constructor(amount) {
this.amount = amount;
}
}
CashAmount.prototype.totalInPennies = function() {
var pennies = this.amount * 100;
return pennies;
};
var exponent = function(base, exp) {
if(exp === 0) {
return 1;
}
if(exp < 0) {
return 1/(base * exponent(base, -(exp+1)));
}
return base * exponent(base, exp-1);
};
var arraySum = function(array) {
var total = 0;
if(array.length === 0) {
return 0;
}
var popped = array.pop();
if(Array.isArray(popped)) {
total += arraySum(popped);
return total += arraySum(array);
}
var factorial = function(n) {
if(n < 0) {return null};
var result = 1;
if(n > 0) {
result = result * n * factorial(n - 1);
} return result;
};