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

一个recursion的问题

头像被屏蔽
🔗
brilight 2013-2-13 10:12:37 | 只看该作者
全局:
本帖最后由 brilight 于 2013-3-2 14:21 编辑

典型的DP問題,我把參數改成了int,思路是是一樣的。floating point是不能用 等號來比較是否相等的,有numerical precision 的問題。

int countIncludes( int a[], int n, int b[], int m)
{
     if(m==0) return 1; //   或者 if(m<=0),防止非法長度
     if(n==0) return 0; //   或者 if(n<=0)  
     //也可以加上 if(m>n) return 0; 不加的話用下面的recursion也能得到正確答案

    if(a[0]==b[0] )
          return countIncludes(a+1,n-1,b+1,m-1)+countIncludes(a+1,n-1,b,m);
     else
          return countIncludes(a+1,n-1,b,m);
}

Time: O(nm)


回覆下面的同學的問題: a+1同 &a[1], 是以a+1為首地址的數組

点评

嗯,很好的解释,这是什么语言? Python么?  发表于 2013-2-13 21:26
数组在pass进函数的时候,实际pass的是一个指向数组的指针,int foo(int a[])和int foo(int* a)等价  发表于 2013-2-13 13:43
countIncludes(a+1,n-1,b+1,m-1) 这是什么意思? a是一个数组,a + 1是什么?  发表于 2013-2-13 10:49
回复

使用道具 举报

🔗
edussx 2013-2-13 10:21:13 | 只看该作者
全局:
目测LZ在上CS32……这道题我去了Smallburg的office hour听他讲了5分钟就搞定了(之前自己想了2小时+……)
回复

使用道具 举报

🔗
brilight 2013-2-13 10:22:34 | 只看该作者
全局:
edussx 发表于 2013-2-13 10:21
目测LZ在上CS32……这道题我去了Smallburg的office hour听他讲了5分钟就搞定了(之前自己想了2小时+……)

你們是在同一個學校嗎?
回复

使用道具 举报

🔗
edussx 2013-2-13 10:24:03 | 只看该作者
全局:
1L其实还少一个n1和n2的判断
  1. if (n2 > n1) return 0;
复制代码
回复

使用道具 举报

🔗
edussx 2013-2-13 10:24:55 | 只看该作者
全局:
brilight 发表于 2013-2-13 10:22
你們是在同一個學校嗎?

UCLA, 这道题听说是CS32的经典题目了……
回复

使用道具 举报

🔗
brilight 2013-2-13 10:32:05 | 只看该作者
全局:
edussx 发表于 2013-2-13 10:24
1L其实还少一个n1和n2的判断

不加的話用recursion能得到正確答案,就是速度慢一點
回复

使用道具 举报

🔗
edussx 2013-2-13 13:30:53 | 只看该作者
全局:
jy02677290 发表于 2013-2-13 13:07
我想了好久都没想出来...我感觉后面的作业自己做可能有点吃力了...以后可以一起讨论啊~

Project3会很难,要做好心理准备

我QQ号私信你了
回复

使用道具 举报

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

本版积分规则

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