最長湍流子陣列
阿新 • • 發佈:2020-09-08
第一次自己寫出動態規劃的題(不容易,人類的智慧真不好理解(扣友的評論),哈哈);思路就不寫了,大佬的題解已經很漂亮了
1 class Solution { 2 public int maxTurbulenceSize(int[] A) { 3 if(A == null || A.length == 0){ 4 return 0; 5 } 6 int maxans = 1; 7 int [] dp = new int[A.length]; 8 dp[0] = 1; 9for(int i = 1; i < A.length; i++){ 10 11 if(i % 2 == 0 && A[i-1] > A[i]){//偶數 12 dp[i] = dp[i-1] + 1; 13 maxans = Math.max(dp[i],maxans); 14 }else if(i % 2 != 0 && A[i-1] < A[i]){ 15 dp[i] = dp[i-1] + 1;16 maxans = Math.max(dp[i],maxans); 17 } 18 else{ 19 dp[i] = 1; 20 } 21 } 22 23 for(int i = 1; i < A.length; i++){ 24 25 if(i % 2 == 0 && A[i-1] < A[i]){//偶數 26 dp[i] = dp[i-1] + 1;27 maxans = Math.max(dp[i],maxans); 28 }else if(i % 2 != 0 && A[i-1] > A[i]){ 29 dp[i] = dp[i-1] + 1; 30 maxans = Math.max(dp[i],maxans); 31 } 32 else{ 33 dp[i] = 1; 34 } 35 } 36 return maxans; 37 } 38 }
2020/9/8