leedcode里的978. 最长湍流子数组,为什么vector定义dp就成功了,改成传统数组就不行了。
再附上代码
class Solution {
public:
int maxTurbulenceSize(vector<int>& arr) {
int len=arr.size();
//vector<vector<int>> dp(len, vector<int>(2, 1)); //可以
int dp[40001][2]={1}; //不可以
dp[0][0]=dp[0][1]=1;
for(int i=1;i<len;i++){
if(arr[i-1]>arr[i])dp[i][0]=dp[i-1][1]+1;
else if(arr[i-1]<arr[i]){
dp[i][1]=dp[i-1][0]+1;
}
}
int ins=1;
for(int i=0;i<len;i++){
ins=max(ins,dp[i][0]);
ins=max(ins,dp[i][1]);
}
return ins;
}
};