Leetcode--416. 分割等和子集
发布日期:2021-04-30 21:05:44 浏览次数:90 分类:精选文章

本文共 1666 字,大约阅读时间需要 5 分钟。

?????????????????????????????????????????????????????????????????????

????

  • ???????????????????????????????????????????????????????? false?

  • ????????? target????????

  • ???????????????? dp??? dp[i][j] ??? i ??????????? j ?????????dp[0][0] ? true??????????0????

  • ?????????????????????? dp ???????? nums[i]???? target ? nums[i] ??????? j??? dp[i][j] ???

  • ??????? dp ???????? dp[i][target] ? true ?????????????????? true????? false?

  • ????

    class Solution {
    public boolean canPartition(int[] nums) {
    int sum = 0;
    int n = nums.length;
    for (int i = 0; i < n; i++) {
    sum += nums[i];
    }
    if (sum % 2 != 0) {
    return false;
    }
    int target = sum / 2;
    boolean[][] dp = new boolean[n][target + 1];
    if (nums[0] <= target) {
    dp[0][nums[0]] = true;
    }
    for (int i = 1; i < n; i++) {
    for (int j = 0; j <= target; j++) {
    dp[i][j] = dp[i-1][j];
    if (j >= nums[i] && dp[i-1][j - nums[i]]) {
    dp[i][j] = true;
    }
    }
    }
    for (int i = 0; i < n; i++) {
    if (dp[i][target]) {
    return true;
    }
    }
    return false;
    }
    }

    ????

  • ?????????????? sum??? sum ???????? false?

  • ??????????? target?? sum / 2?

  • ?????????????????? dp???? n x (target + 1)????? dp[0][0] ? true?

  • ?????????????????? nums[i]??? dp ?????? j ? 0 ? target???????????? dp[i][j] = dp[i-1][j]????????????? dp[i-1][j - nums[i]] ??? true?????? dp[i][j] = true?

  • ??????? dp ???????? dp[i][target] ? true ??????????? true????? false?

  • ???????????????????????????????????????

    上一篇:Leetcode--1160.拼写单词(Java)
    下一篇:JavaBase-IO流-对象流

    发表评论

    最新留言

    做的很好,不错不错
    [***.243.131.199]2026年06月05日 02时37分03秒