-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFibFrog.js
More file actions
46 lines (40 loc) · 1.02 KB
/
FibFrog.js
File metadata and controls
46 lines (40 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//Score: 100%
function solution(A) {
// write your code in JavaScript (Node.js 8.9.4)
chargeFibs(A.length);
var gotTo = [-1];
var jumps = 0;
while(gotTo.length!=0){
jumps++;
var newgotTo = new Array();
for(var i = 0; i<gotTo.length; i++){
for(var j = 0; j<fibsArr.length; j++){
var pos = fibsArr[j] + gotTo[i];
if(pos > A.length)
break;
if(pos == A.length){
return jumps;
}
if(A[pos] == 1){
newgotTo.push(pos);
A[pos] = 0;
}
}
}
gotTo = newgotTo;
}
return -1;
}
var fibsArr = new Array();
function chargeFibs(N){
fibsArr = new Array();
var a = 1;
var b = 1;
fibsArr.push(1);
for(var i = 2; i < N + 2; i++){
var newb = a + b;
fibsArr.push(newb);
a = b;
b = newb;
}
}