算法机考模拟题1005.最大和
来源:互联网 发布:淘宝刷到一天能赚多少 编辑:程序博客网 时间:2024/06/08 19:23
Description
从数列A[0], A[1], A[2], ..., A[N-1]中选若干个数,要求相邻的数不能都选,也就是说如果选了A[i], 就不能选A[i-1]和A[i+1]. 求能选出的最大和.
1 <= N <= 100000, 1 <= A[i] <= 1000
请为下面的Solution类实现解决上述问题的函数maxSum,函数参数A是给出的数列,返回值为所求的最大和.
class Solution {
public:
int maxSum(vector<int>& A) {
}
};
例1:A = {2, 5, 2},答案为5.
例2:A = {2, 5, 4},答案为6.
注意:你只需要提交Solution类的代码,你在本地可以编写main函数测试程序,但不需要提交main函数的代码. 注意不要修改类和函数的名称.
动态规划,相邻数不可同时被选,那么遍历数组,记录当前最大和,比较写出状态转移方程即可。
class Solution { public: int maxSum(vector<int>& A) { if (A.size() == 0) return 0; vector<int> f(A.size()); f[0] = A[0]; f[1] = A[0] > A[1] ? A[0] : A[1]; for (int i = 2; i < A.size(); i++) { f[i] = f[i - 1] > (f[i - 2] + A[i]) ? f[i - 1] : (f[i - 2] + A[i]); } return f[A.size() - 1]; } };
阅读全文
0 0
- 算法机考模拟题1005.最大和
- Sicily 最大和 | 期末算法机考模拟题
- 算法机考模拟题
- 8道算法机考模拟题
- 算法机考模拟题 part1
- 算法机考模拟题 part2
- 算法机考模拟题1000.函数求值
- 算法机考模拟题1001.会议安排
- 算法机考模拟题1002.等价二叉树
- 算法机考模拟题1006.单词变换
- 算法机考模拟题题解(部分)
- 第十九周:[sicily] 算法机考模拟题
- Sicily 无环图 | 算法期末机考模拟题
- Sicilly 等价二叉树 | 算法期末机考模拟题
- Sicily 相连的1 | 算法期末机考模拟题
- Sicily 会议安排 | 算法期末机考模拟题
- 算法作业_33(2017.6.16第十七周)(算法机考模拟题1)
- 算法作业_34(2017.6.16第十七周)(算法机考模拟题2)
- centos游戏服做长连接系统优化
- java开发者常用的linux指令
- Vue2 ( 3 ) 过渡
- 《JavaScript》高级程序设计第21章:Ajax和Comet,jsonp
- [bzoj1059]矩阵游戏
- 算法机考模拟题1005.最大和
- SSM java切换数据源 实现读写分离
- AjaxJson
- 甲骨文解读: 公共资源
- ubus
- sql profile: 如何使用我们自定义的sql 执行计划来固定原sql执行计划 及 如何优化非绑定变量sql
- js+css简单导航栏特效
- 深度学习理论与技术的重点研究方向
- Web系统大规模并发:电商秒杀与抢购