@@ -0,0 +1,970 @@
+package leetcode;%0A%0Aimport java.util.HashMap;%0Aimport java.util.Map;%0A%0A/**%0A * https://leetcode.com/problems/house-robber/%0A */%0Apublic class Problem198 %7B%0A    public int rob(int%5B%5D num) %7B%0A        Map%3CInteger, Integer%3E memo = new HashMap%3C%3E();%0A        int max1 = rob(num, 0, memo);%0A        int max2 = rob(num, 1, memo);%0A        if (max1 %3E max2) %7B%0A            return max1;%0A        %7D%0A        return max2;%0A    %7D%0A    %0A    private int rob(int%5B%5D num, int idx, Map%3CInteger, Integer%3E memo) %7B%0A        if (memo.containsKey(idx)) %7B%0A            return memo.get(idx);%0A        %7D%0A        if (idx == num.length - 1) %7B%0A            return num%5Bidx%5D;%0A        %7D%0A        if (idx %3E= num.length) %7B%0A            return 0;%0A        %7D%0A        int m1 = rob(num, idx+2, memo);%0A        int m2 = rob(num, idx+3, memo);%0A        int val = num%5Bidx%5D;%0A        if (m1 %3E m2) %7B%0A            memo.put(idx, val + m1);%0A            return val + m1;%0A        %7D%0A        memo.put(idx, val + m2);%0A        return val + m2;%0A    %7D%0A%7D%0A

Solve problem 198