File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed
Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -20,3 +20,36 @@ const fragJump1 = (n: number, heights: number[]): number => {
2020
2121 return Math . min ( jumpOne , jumpTwo ) ;
2222} ;
23+
24+ /**
25+ * An Optimized Solution of the above.
26+ *
27+ * @param {number } n
28+ * @param {number[] } heights
29+ * @param {number[] } dp
30+ * @returns {number }
31+ */
32+
33+ const fragJump2 = (
34+ n : number ,
35+ heights : number [ ] ,
36+ dp : number [ ] = Array ( n + 1 ) . fill ( - 1 )
37+ ) : number => {
38+ if ( n === 0 ) {
39+ return 0 ;
40+ }
41+
42+ if ( dp [ n ] !== - 1 ) return dp [ n ] ;
43+
44+ let jumpOne =
45+ fragJump2 ( n - 1 , heights , dp ) + Math . abs ( heights [ n ] - heights [ n - 1 ] ) ;
46+ let jumpTwo = Infinity ;
47+
48+ if ( n > 1 ) {
49+ jumpTwo =
50+ fragJump2 ( n - 2 , heights , dp ) + Math . abs ( heights [ n ] - heights [ n - 2 ] ) ;
51+ }
52+
53+ dp [ n ] = Math . min ( jumpOne , jumpTwo ) ;
54+ return dp [ n ] ;
55+ } ;
You can’t perform that action at this time.
0 commit comments