Skip to content

Instantly share code, notes, and snippets.

@jianminchen
Created July 10, 2020 04:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jianminchen/3ef2cdb1c46ba8ffd81f3e9241bb9f64 to your computer and use it in GitHub Desktop.
Save jianminchen/3ef2cdb1c46ba8ffd81f3e9241bb9f64 to your computer and use it in GitHub Desktop.
Interviewer shared his solution and he also shared his tips -
const _ = require('lodash');
function sayHello() {
console.log('Hello, World');
}
_.times(5, sayHello);
var canCross = function(stones) {
let map = new Map();
for (let stone of stones) {
map.set(stone, new Set());
}
map.get(stones[0]).add(0);
for (let i = 0; i < stones.length; i++) {
let steps = map.get(stones[i]).values();
for (let step of steps) {
for (let k = step - 1; k <= step + 1; k++) { // O(1
if (k > 0 && map.has(stones[i] + k)) {
map.set(stones[i] + k, map.get(stones[i] + k).add(k));
}
}
}
}
return map.get(stones[stones.length - 1]).size > 0;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment