File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {string } s1
3
+ * @param {string } s2
4
+ * @return {string }
5
+ */
6
+ const minWindow = function ( s1 , s2 ) {
7
+ const S = s1 , T = s2
8
+ let m = T . length , n = S . length ;
9
+ let dp = Array . from ( { length : m + 1 } , ( ) => Array ( n + 1 ) . fill ( 0 ) ) ;
10
+ for ( let j = 0 ; j <= n ; j ++ ) {
11
+ dp [ 0 ] [ j ] = j + 1 ;
12
+ }
13
+ for ( let i = 1 ; i <= m ; i ++ ) {
14
+ for ( let j = 1 ; j <= n ; j ++ ) {
15
+ if ( T . charAt ( i - 1 ) == S . charAt ( j - 1 ) ) {
16
+ dp [ i ] [ j ] = dp [ i - 1 ] [ j - 1 ] ;
17
+ } else {
18
+ dp [ i ] [ j ] = dp [ i ] [ j - 1 ] ;
19
+ }
20
+ }
21
+ }
22
+
23
+ let start = 0 , len = n + 1 ;
24
+ for ( let j = 1 ; j <= n ; j ++ ) {
25
+ if ( dp [ m ] [ j ] != 0 ) {
26
+ if ( j - dp [ m ] [ j ] + 1 < len ) {
27
+ start = dp [ m ] [ j ] - 1 ;
28
+ len = j - dp [ m ] [ j ] + 1 ;
29
+ }
30
+ }
31
+ }
32
+ return len == n + 1 ? "" : S . substring ( start , start + len ) ;
33
+ }
34
+
35
+ // another
36
+
1
37
/**
2
38
* @param {string } s1
3
39
* @param {string } s2
You can’t perform that action at this time.
0 commit comments