力扣动态规划-32【算法学习day.126】

前言

###我做这类文章一个重要的目的还是记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.完全平方数

题目链接:279. 完全平方数 - 力扣(LeetCode)

题面:力扣动态规划-32【算法学习day.126】_第1张图片

代码:

class Solution {
    private static final int[][] memo = new int[101][10001];

    static {
        for (int[] row : memo) {
            Arrays.fill(row, -1);
        }
    }

    private static int dfs(int i, int j) {
        if (i == 0) {
            return j == 0 ? 0 : Integer.MAX_VALUE;
        }
        if (memo[i][j] != -1) {
            return memo[i][j];
        }
        if (j < i * i) {
            return memo[i][j] = dfs(i - 1, j);
        }
        return memo[i][j] = Math.min(dfs(i - 1, j), dfs(i, j - i * i) + 1);
    }

    public int numSquares(int n) {
        return dfs((int) Math.sqrt(n), n);
    }
}

后言

上面是动态规划相关的习题,共勉力扣动态规划-32【算法学习day.126】_第2张图片

 

 

你可能感兴趣的:(算法,#,动态规划,算法,leetcode,动态规划,学习,java)