整数划分问题(续)(非递归法)

简介:

上一篇讨论的是整数划分问题递归方法,下面来讨论下非递归方法:

一般情况下,遇到递归问题,若能直接求得递推式,则可以很容易用数组模拟来实现递归,根据已经得出的递归关系,可以设置一个二维数组S[][]来存储数据:

for(i=1;i<=n;i++)
{  

   S[i][1]=1;
      S[1][i]=1;
}

for
(i=2;i<=n;i++)
{

   for
(j=2;j<=m;j++)
   {

     i f(i==j)
           S[i][j]=1+S[i][i-1];
       else if
(i<j)
           S[i][j]=S[i][i];
       else

           S[i][j]=S[i-j][j]+S[i][j-1];
   }

}


本文转载自海 子博客园博客,原文链接:http://www.cnblogs.com/dolphin0520/archive/2011/04/04/2005117.html如需转载自行联系原作者

相关文章
|
5月前
|
存储 C++ 容器
【C++&数据结构】二叉树(结合C++)的经典oj例题 [ 盘点&全面解析 ](24)
【C++&数据结构】二叉树(结合C++)的经典oj例题 [ 盘点&全面解析 ](24)
|
5月前
【每日一题Day286】LC21合并两个有序链表 | 链表模拟 递归
【每日一题Day286】LC21合并两个有序链表 | 链表模拟 递归
29 0
|
12月前
49 # 用递归和非递归两种方式实现链表反转
49 # 用递归和非递归两种方式实现链表反转
50 0
|
算法
力扣704二分查找:思路分析+代码实现(递归与非递归)
力扣704二分查找:思路分析+代码实现(递归与非递归)
110 0
|
算法 C++
【栈的应用】二叉树非递归中序遍历思想解析及代码实现
【栈的应用】二叉树非递归中序遍历思想解析及代码实现
187 0
【栈的应用】二叉树非递归中序遍历思想解析及代码实现
|
算法
【刷算法】翻转二叉树的递归和非递归解法
【刷算法】翻转二叉树的递归和非递归解法
【刷算法】翻转二叉树的递归和非递归解法
|
存储 算法 C#
【查找算法】二分查找(C# + 递归、非递归和变种形式)
本文主要介绍二分查找算法,通过图片解析每一次查找的情况。代码通过C#实现,分别有递归、非递归和变种三种形式。其中变种主要**解决数组出现重复数据**的问题。最后,我们还分析了二分查找的局限性。
【查找算法】二分查找(C# + 递归、非递归和变种形式)
|
算法
【刷算法】翻转单链表的递归和非递归方法
【刷算法】翻转单链表的递归和非递归方法