-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFly me to my destination.html
130 lines (61 loc) · 3.17 KB
/
Fly me to my destination.html
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<!DOCTYPE html>
<html>
<head><title>Fly me to my destination</title></head>
<body>
<script>
function minJumps(arr,n)
{
// The number of jumps needed to
// reach the starting index is 0
if (n <= 1)
return 0;
// Return -1 if not possible to jump
if (arr[0] == 0)
return -1;
// initialization
// stores all time the maximal
// reachable index in the array.
let maxReach = arr[0];
// stores the number of steps
// we can still take
let step = arr[0];
// stores the number of jumps
// necessary to reach that maximal
// reachable position.
let jump = 1;
// Start traversing array
let i = 1;
for (i = 1; i < n; i++) {
// Check if we have reached the end of the array
if (i == n - 1)
return jump;
// updating maxReach
maxReach =Math.max(maxReach, i + arr[i]);
// we use a step to get to the current index
step--;
// If no further steps left
if (step == 0) {
// we must have used a jump
jump++;
// Check if the current index/position or lesser index
// is the maximum reach point from the previous indexes
if (i >= maxReach)
return -1;
// re-initialize the steps to the amount
// of steps to reach maxReach from position i.
step = maxReach - i;
}
}
return -1;
}
var elm=prompt("Enter no. of elements: ");
var arr=[]
for(let i=0;i<elm;i++)
{
arr[i]=prompt("enter element")
}
document.write("Minimum number of jumps to reach end is "+
minJumps(arr, elm));
</script>
</body>
</html>