解题思路:
动态规划,记录前i个以A或B结尾的最大能量
class Solution { public long maxEnergyBoost(int[] energyDrinkA, int[] energyDrinkB) { int n=energyDrinkA.length; long[][] dp=new long[n][2]; for(int i=0;i<n;i++){ if(i>=2){ dp[i][0]=Math.max(dp[i-1][0]+energyDrinkA[i],dp[i-2][1]+energyDrinkA[i]); dp[i][1]=Math.max(dp[i-1][1]+energyDrinkB[i],dp[i-2][0]+energyDrinkB[i]); } else if(i>=1){ dp[i][0]=dp[i-1][0]+energyDrinkA[i]; dp[i][1]=dp[i-1][1]+energyDrinkB[i]; } else{ dp[i][0]=energyDrinkA[0]; dp[i][1]=energyDrinkB[0]; } } return Math.max(dp[n-1][0],dp[n-1][1]); } }
100386. 超级饮料的最大强化能量
于 2024-08-18 23:59:25 首次发布