trekhleb/javascript-algorithms | ExplainGitHub