leetCode 978. Longest Turbulent Subarray
生活随笔
收集整理的這篇文章主要介紹了
leetCode 978. Longest Turbulent Subarray
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
求一個(gè)數(shù)組中連續(xù)混亂子數(shù)組的最大長(zhǎng)度,連續(xù)混亂子數(shù)組滿(mǎn)足條件定義為:A[i-1]<A[i]>A[i+1]或A[i-1]>A[i]<A[i+1],最后得出長(zhǎng)度
class Solution { public:int maxTurbulenceSize(vector<int>& A) {int n = A.size();if (n == 1)return 1;vector<int>dp(n, 0);dp[0] = 1;//dp[i]代表以第i個(gè)數(shù)字結(jié)尾時(shí)最長(zhǎng)混亂字串的長(zhǎng)度if (A[0] == A[1])dp[1] = 1;elsedp[1] = 2;int MaxLen = dp[1];for (int i = 2; i < n; i++) {if (A[i - 1] == A[i])//當(dāng)前數(shù)字和前一個(gè)數(shù)字相等,則dp[i]=1;dp[i] = 1;else if (!((A[i - 2] > A[i - 1]) ^ (A[i - 1] < A[i])))//若當(dāng)前數(shù)字與前面兩個(gè)數(shù)字仍然滿(mǎn)足混亂子數(shù)組,則dp[i] = dp[i-1]+1;dp[i] = dp[i - 1] + 1;else //此時(shí)不滿(mǎn)足混亂子數(shù)組,dp[i]重設(shè)為2;dp[i] = 2;MaxLen = max(MaxLen, dp[i]);//記錄當(dāng)前最大結(jié)果;}return MaxLen; } };?
總結(jié)
以上是生活随笔為你收集整理的leetCode 978. Longest Turbulent Subarray的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Win10——DNS自动最优挑选
- 下一篇: 什么是SRM?SRM系统有哪些选择策略