class Solution { Map<Integer, Integer> map = new HashMap(); public int minDays(int n) { if(n == 0) return 0; if(!map.containsKey(n)){ int ans = n; // d第一种选择 int half = n / 2; int third = n / 3; // 余数的橘子先吃 ans = Math.min(ans, minDays(half) + 1 + n - half * 2); // 第二种 ans = Math.min(ans, minDays(third) + 1 + n - third * 3); // 第三种 map.put(n, ans); } return map.get(n); } }