思路:从后向前遍历数组,用tans记录每一种可能的最大值,ans为实际最大值。
注意:若ans==0,返回nums[0] 要用long
code
class Solution {public long maxArrayValue(int[] nums) {long ans=0;long tans=0;boolean flag=true;for(int i=nums.length-1;i>0;i--){if(flag==true&&nums[i]>=nums[i-1]){flag=false;tans=nums[i]+nums[i-1];ans=Math.max(ans,tans);}else{if(tans>=nums[i-1]){tans+=nums[i-1];ans=Math.max(ans,tans);}else{ans=Math.max(nums[i-1],ans);flag=true;tans=0;}}}if(ans==0) return nums[0];return ans;}
}