首页 > 其他 > 详细

递归函数返回值学习

时间:2014-08-06 17:24:41      阅读:194      评论:0      收藏:0      [点我收藏+]

分析以下代码

int dp(int i)
{
  int& ans=d[i];    //为该表项声明一个引用,简化对它的读写操作。 
  if(ans>0) return ans;
  ans=1;
  for(int j=0;j<n;j++){
    if(G[i][j]){
      int tmp=dp(j);
      ans=ans>tmp+1?ans:tmp+1; 
    }
  }
  return ans;
}

这是个DAG下的动态规划。是矩形嵌套的dp函数。粘这个代码的原因是为了反复体会这个ans在这个递归函数中的使用技巧。for语句块是为了选出当前行下的dp(j)的最大值,然后ans在此充当了max的作用。

递归函数返回值学习,布布扣,bubuko.com

递归函数返回值学习

原文:http://www.cnblogs.com/chaiwentao/p/3894667.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!