动态规划之最大连续子数组(递归备忘录写法)
- #include <iostream>
- #define Max 100
- using namespace std;
- //最大子数组和,用递归的备忘录写法,动态规划。
- int b[Max];
- int a[]={1,12,-22,3,7,8,-14,-11,9,8};
- int fun(int n)
- {
- if(b[n]>0)return b[n];
- if(n<0)return 0;
- int t=fun(n-1);
- if(t<0) b[n]=a[n];
- else b[n]=t+a[n];
- return b[n];
- }
- void main()
- {
- fun(9);
- int max=b[0];
- for(int i=1;i<10;i++)
- {
- if(b[i]>max) max=b[i];
- }
- cout<<max<<endl;
- }
我感觉用递归的备忘录写法好写多了。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号