添加(0718.最长重复子数组.md):增加typescript版本

This commit is contained in:
Steve2020
2022-05-19 15:03:09 +08:00
parent 047c4db195
commit afcf6cd5a1

View File

@ -297,6 +297,56 @@ const findLength = (nums1, nums2) => {
}
```
TypeScript
> 动态规划:
```typescript
function findLength(nums1: number[], nums2: number[]): number {
/**
dp[i][j]nums[i-1]和nums[j-1]结尾,最长重复子数组的长度
*/
const length1: number = nums1.length,
length2: number = nums2.length;
const dp: number[][] = new Array(length1 + 1).fill(0)
.map(_ => new Array(length2 + 1).fill(0));
let resMax: number = 0;
for (let i = 1; i <= length1; i++) {
for (let j = 1; j <= length2; j++) {
if (nums1[i - 1] === nums2[j - 1]) {
dp[i][j] = dp[i - 1][j - 1] + 1;
resMax = Math.max(resMax, dp[i][j]);
}
}
}
return resMax;
};
```
> 滚动数组:
```typescript
function findLength(nums1: number[], nums2: number[]): number {
const length1: number = nums1.length,
length2: number = nums2.length;
const dp: number[] = new Array(length1 + 1).fill(0);
let resMax: number = 0;
for (let i = 1; i <= length1; i++) {
for (let j = length2; j >= 1; j--) {
if (nums1[i - 1] === nums2[j - 1]) {
dp[j] = dp[j - 1] + 1;
resMax = Math.max(resMax, dp[j]);
} else {
dp[j] = 0;
}
}
}
return resMax;
};
```
-----------------------
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>