求助站外题(Topcoder)
  • 板块灌水区
  • 楼主Eric998
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/7/25 12:59
  • 上次更新2023/10/27 18:31:20
查看原帖
求助站外题(Topcoder)
678534
Eric998楼主2022/7/25 12:59

Topcoder1259

#include <iostream>
#include <vector>
#include <map>
#include <math.h>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <time.h>
using namespace std;
int dp[55][2];

class ZigZag {
	public:
		int longestZigZag(vector<int> sequence) {
			int n = sequence.size();
			dp[0][0] = dp[0][1] = 1;
			for (int i = 1; i < n; i++) {
				int jmp0 = 0;
				int jmp1 = 0;
				for (int j = 0; j < i; j++) {
					if (sequence[j] > sequence[i]) {
						jmp0 = j;
					}
					if (sequence[j] < sequence[i]) {
						jmp1 = j;
					}
				}
				dp[i][0] = max(dp[i - 1][0], dp[jmp0][1] + 1);
				dp[i][1] = max(dp[i - 1][1], dp[jmp1][0] + 1);
			}
			return max(dp[n - 1][0], dp[n - 1][1]);
		}
};

WA ON 5

求助

2022/7/25 12:59
加载中...