当前位置: 首页 > news >正文

百度站长资源平台四川省建设厅官方网站首页

百度站长资源平台,四川省建设厅官方网站首页,wordpress上传打文件失败,代码做网站常用单词转载自#xff1a;http://blog.csdn.net/linhuanmars/article/details/22126357 原题链接: http://oj.leetcode.com/problems/unique-paths/ 这道题是比较典型的动态规划的题目。模型简单#xff0c;但是可以考核动态规划的思想。我们先说说brute force的解法#xff0c;…转载自http://blog.csdn.net/linhuanmars/article/details/22126357 原题链接: http://oj.leetcode.com/problems/unique-paths/  这道题是比较典型的动态规划的题目。模型简单但是可以考核动态规划的思想。我们先说说brute force的解法比较容易想到用递归到达某一格的路径数量等于它的上面和左边的路径数之和结束条件是走到行或者列的边缘。因为每条路径都会重新探索时间复杂度是结果数量的量级不是多项式的复杂度。代码如下  [java] view plaincopy public int uniquePaths(int m, int n) {       return helper(1,1,m,n);   }   private int helper(int row, int col, int m, int n)   {       if(rowm  coln)           return 1;       if(rowm || coln)           return 0;       return helper(row1,col,m,n)helper(row,col1,m,n);   }   上面的代码放到LeetCode中跑会超时因为不是多项式量级的。其实上一步中递推式已经出来了就是res[i][j]res[i-1][j]res[i][j-1]这样我们就可以用一个数组来保存历史信息也就是在i行j列的路径数这样每次就不需要重复计算从而降低复杂度。用动态规划我们只需要对所有格子进行扫描一次到了最后一个得到的结果就是总的路径数所以时间复杂度是O(m*n)。而对于空间可以看出我们每次只需要用到上一行当前列以及前一列当前行的信息我们只需要用一个一维数组存上一行的信息即可然后扫过来依次更替掉上一行对应列的信息即可因为所需要用到的信息都还没被更替掉所以空间复杂度是O(n)其实如果要更加严谨我们可以去行和列中小的那个然后把小的放在内层循环这样空间复杂度就是O(min(m,n))下面的代码为了避免看起来过于繁杂就不做这一步了有兴趣的朋友可以实现一下比较简单不过代码有点啰嗦。实现的代码如下 [java] view plaincopy public int uniquePaths(int m, int n) {       if(m0 || n0)           return 0;       int[] res  new int[n];       res[0]  1;       for(int i0;im;i)       {           for(int j1;jn;j)           {              res[j]  res[j-1];           }       }       return res[n-1];   }   上面的方法用动态规划来求解如果我们仔细的看这个问题背后的数学模型其实就是机器人总共走mn-2步其中m-1步往下走n-1步往右走本质上就是一个组合问题也就是从mn-2个不同元素中每次取出m-1个元素的组合数。根据 组合 的计算公式我们可以写代码来求解即可。代码如下 [java] view plaincopy public int uniquePaths(int m, int n) {       double dom  1;       double dedom  1;       int small  mn? m-1:n-1;       int big  mn? n-1:m-1;       for(int i1;ismall;i)       {           dedom * i;           dom * smallbig1-i;       }       return (int)(dom/dedom);   }   上面的代码求解了组合的结果只需要做一次行或者列的扫描所以时间复杂度是O(min(m,n))而空间复杂度是O(1)。比起上面的两种解法更优。不过这里有个弊端就是如果代码中的dom和dedom如果不是double而是用int那么会很容易越界因为这是一个阶乘所以大家在面试中讨论这种方法要注意和提及越界的问题。上面介绍了几种方法来求解这个问题其实都是比较简单的模型只是提供了不同的思路。 Unique Paths II 是这道题的扩展给机器人增加了障碍有兴趣的朋友可以联系一下。
http://www.sadfv.cn/news/360475/

相关文章:

  • 今标 网站建设网站主机选择
  • wordpress 注册 登陆长沙百度快速排名优化
  • 怎么跟客户介绍网站建设中企动力潍坊分公司
  • 怎么修改php网站云主机购买
  • 网站商城建设方案网站后台数据
  • 电子商务网站建设技巧制作游戏的网站
  • 网站建设软件定制开发网站建设引擎
  • 公司网站域名备案流程社交网站盈利吗
  • 企业网站管理制度建设浪花直播
  • 外贸专业网站建设sanitize_user wordpress
  • 做亚马逊网站一般发什么快递公司wordpress轮翻图参数
  • 如何去掉链接wordpress想做个卷帘门百度优化网站
  • 无锡设计网站找哪家时尚网站建设
  • 做广告牌子的电话安徽seo推广公司
  • 怎么做车载mp3下载网站合肥网站优化价格
  • 黄石港区建设局网站页面模板微信
  • 自适应网站怎么做移动配置东吴钢结构网架公司
  • 新网个人网站备案dw网站制作的源代码
  • 邓州建网站wordpress博客分类
  • 福建设计招标网站seo网站提交提交
  • 家具网站建设传奇手游排行榜2021前十名
  • 一站式做网站哪家专业自己做的网站 能收索么
  • 织梦后台 data移除后 网站无法打开wordpress导入html文件
  • 2023网站推广入口编辑模板wordpress
  • 枣庄建设局网站seo岗位工资
  • 怎么用vps做网站seo优化有哪些
  • 网站备案主体注销网站备案成功
  • 宁波外贸网站禁用wordpress更新
  • 网站icp备案信息网络营销师就业前景
  • 资讯门户网站 dede制作微信小程序商城模板