C++ 最大子数组和优化:动态规划算法实现
#include<bits/stdc++.h>\nusing namespace std;\nlong int a[100001], dp[100001];\nint main(){\n long int sb, bs;\n cin>>sb>>bs;\n for(int i=1; i<=sb; i++){\n \t scanf("%d",a+i);\n }\n dp[1] = a[1]; // 初始化dp数组\n for(int i=2; i<=sb; i++){\n dp[i] = max(a[i], dp[i-1]+a[i]); // 动态规划计算dp数组\n }\n long int cnm = dp[bs];\n for(int i=bs+1; i<=sb; i++){\n cnm = max(cnm, dp[i]); // 找到最大子数组和\n }\n printf("%d",cnm);\n return 0;\n}
原文地址: https://www.cveoy.top/t/topic/pMYC 著作权归作者所有。请勿转载和采集!