mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
添加(0376.摆动序列.md):增加typescript版本
This commit is contained in:
@ -298,5 +298,55 @@ var wiggleMaxLength = function(nums) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
**贪心**
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function wiggleMaxLength(nums: number[]): number {
|
||||||
|
let length: number = nums.length;
|
||||||
|
if (length <= 1) return length;
|
||||||
|
let preDiff: number = 0;
|
||||||
|
let curDiff: number = 0;
|
||||||
|
let count: number = 1;
|
||||||
|
for (let i = 1; i < length; i++) {
|
||||||
|
curDiff = nums[i] - nums[i - 1];
|
||||||
|
if (
|
||||||
|
(preDiff <= 0 && curDiff > 0) ||
|
||||||
|
(preDiff >= 0 && curDiff < 0)
|
||||||
|
) {
|
||||||
|
preDiff = curDiff;
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
**动态规划**
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function wiggleMaxLength(nums: number[]): number {
|
||||||
|
const length: number = nums.length;
|
||||||
|
if (length <= 1) return length;
|
||||||
|
const dp: number[][] = new Array(length).fill(0).map(_ => []);
|
||||||
|
dp[0][0] = 1; // 第一个数作为波峰
|
||||||
|
dp[0][1] = 1; // 第一个数作为波谷
|
||||||
|
for (let i = 1; i < length; i++) {
|
||||||
|
dp[i][0] = 1;
|
||||||
|
dp[i][1] = 1;
|
||||||
|
for (let j = 0; j < i; j++) {
|
||||||
|
if (nums[j] < nums[i]) dp[i][0] = Math.max(dp[i][0], dp[j][1] + 1);
|
||||||
|
}
|
||||||
|
for (let j = 0; j < i; j++) {
|
||||||
|
if (nums[j] > nums[i]) dp[i][1] = Math.max(dp[i][1], dp[j][0] + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Math.max(dp[length - 1][0], dp[length - 1][1]);
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
Reference in New Issue
Block a user