Max Array Sum

  • + 0 comments

    Solution with Java 8 using Map. Is it good or bad?

    public class Solution {
        
        static Map<Integer, Integer> indexMaxValueMap = new HashMap<>();
    
        static int maxSubsetSum(int[] arr, int currentIndex) {
            if (currentIndex > arr.length - 1) {
                return 0;
            }
            
            if (indexMaxValueMap.get(currentIndex) != null) {
                return indexMaxValueMap.get(currentIndex);
            }
            
            int currentValue = Math.max(0, arr[currentIndex]);
            
            currentValue += Math.max(maxSubsetSum(arr, currentIndex + 2), maxSubsetSum(arr, currentIndex + 3));
            
            indexMaxValueMap.put(currentIndex, currentValue);
            
            return currentValue;
        }
    
        static int maxSubsetSum(int[] arr) {
            return Math.max(maxSubsetSum(arr, 0), maxSubsetSum(arr, 1));
        }