查看: 5461| 回复: 4
跳转到指定楼层
上一主题 下一主题
收起左侧

关于dfs with memorization的时间复杂度

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
最近做了一些题,有些题目可以用dp方法或者dfs with memorization来解。从leetcode的performance来看,有些时候dfs with memorization还要快一些。但是不知道具体应该如何分析这种情况下的时间复杂度,请问有人有什么心得吗?

比如说312 burst balloon,memorization方法的代码如下
public class Solution {
    public int maxCoins(int[] nums) {
        if (nums == null || nums.length == 0) return 0;
        int[] vals = new int[nums.length+2];
        vals[0] = vals[vals.length-1] = 1;
        for (int i = 0; i < nums.length; i++) vals[i+1] = nums[i];
        int n = vals.length;
        int[][] memo = new int[n][n];
        return partition(vals, 0, n-1, memo);
    }

    private int partition(int[] nums, int lo, int hi, int[][] memo) { // the max when we burst baloons from lo to hi. Both indexes are exclusive
        if (hi == lo + 1) return 0;
        else if (memo[lo][hi] > 0) return memo[lo][hi];
        else {
            int res = 0;
            for (int i = lo+1; i < hi; i++) {
                res = Math.max(res, nums[lo] * nums[i] * nums[hi] + partition(nums, lo, i, memo) + partition(nums, i, hi, memo));
            }
            memo[lo][hi] = res;
            return res;
        }
    }
}



上一篇:关于lc377的一点疑问
下一篇:问到leetcode easy的题。。

本帖被以下淘专辑推荐:

🔗
yangluphil 2016-12-20 06:02:05 | 只看该作者
全局:
很多情况下,memoization就比bottom up的dp快呀,因为会避免算一些不需要的table entry,worst case复杂度一般是一样的
回复

使用道具 举报

🔗
cstdlib 2016-12-20 10:02:43 | 只看该作者
全局:
两种最坏情况的时间复杂度是一样的, 你看dp定义了多少种状态复杂度就是多少
回复

使用道具 举报

🔗
 楼主| metalsolid 2016-12-20 10:17:09 | 只看该作者
全局:
所以判断memorization方法的复杂度还是要先以dp的思维考虑了才能总结出复杂度对吗?根本就是确定状态的个数?
回复

使用道具 举报

🔗
cstdlib 2016-12-20 15:17:14 | 只看该作者
全局:
metalsolid 发表于 2016-12-20 10:17
所以判断memorization方法的复杂度还是要先以dp的思维考虑了才能总结出复杂度对吗?根本就是确定状态的个数 ...

感觉有时候也要看状态转移的时候花的时间
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表