File tree 2 files changed +39
-1
lines changed
2 files changed +39
-1
lines changed Original file line number Diff line number Diff line change
1
+ /*
2
+ * @lc app=leetcode.cn id=1143 lang=javascript
3
+ *
4
+ * [1143] 最长公共子序列
5
+ *
6
+ * 1. dp 解法
7
+ * 2. 如果当前位置字符相同, 则 dp[i][j] = dp[i - 1][j - 1] + 1;
8
+ * 3. 如果不同, 则 dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
9
+ */
10
+
11
+ // @lc code=start
12
+ /**
13
+ * @param {string } text1
14
+ * @param {string } text2
15
+ * @return {number }
16
+ */
17
+ var longestCommonSubsequence = function ( text1 , text2 ) {
18
+ const dp = [ ] ;
19
+ for ( let i = 0 ; i <= text1 . length ; i ++ ) {
20
+ dp [ i ] = [ ] ;
21
+ for ( let j = 0 ; j <= text2 . length ; j ++ ) {
22
+ if ( i === 0 || j === 0 ) {
23
+ dp [ i ] [ j ] = 0 ;
24
+ continue ;
25
+ }
26
+
27
+ if ( text1 [ i - 1 ] === text2 [ j - 1 ] ) {
28
+ dp [ i ] [ j ] = dp [ i - 1 ] [ j - 1 ] + 1 ;
29
+ } else {
30
+ dp [ i ] [ j ] = Math . max ( dp [ i - 1 ] [ j ] , dp [ i ] [ j - 1 ] ) ;
31
+ }
32
+ }
33
+ }
34
+
35
+ return dp [ text1 . length ] [ text2 . length ] ;
36
+ } ;
37
+ // @lc code=end
38
+
Original file line number Diff line number Diff line change 8
8
* 3. 串的长度 - 最长公共序列长度, 就是差异字符的个数
9
9
* 4. 补上这些个数的字符, 就构成回文串了
10
10
*
11
- * 1. 求最长公共序列, 是标准的 dp 算法
11
+ * 1. 求最长公共序列, 是标准的 dp 算法, 同 1143
12
12
* 2. 如果当前位置字符相同, 则 dp[i][j] = dp[i - 1][j - 1] + 1;
13
13
* 3. 如果不同, 则 dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
14
14
*
You can’t perform that action at this time.
0 commit comments