1553.吃掉N个橘子的最少天数

有思路但是今天只剩下几十分钟了,有机会再做吧。

下面的代码超时了。// 5.13更新:这种贪心策略是不对的,不能优先选第三种策略。同时,最后一行的返回值minDays(n - 1)等于从0~n每一个值都要递归一遍,不可取。最后还要使用记忆化搜索。

/**
 * @date 2024-05-12 23:11
 */

public class MinDays1553 {

    @Deprecated
    public int minDays(int n) {
        int res = 0;
        if (n <= 0) {
            return 0;
        }
        if (n % 3 == 0) {
            res = minDays(n - 2 * (n / 3)) + 1;
        } else if (n % 2 == 0) {
            res = minDays(n - n / 2) + 1;
        } else {
            return minDays(n - 1) + 1;
        }
        return Math.min(res, minDays(n - 1) + 1);
    }
}