不相邻子序列最大和
来源:互联网 发布:关于淘宝开店的书籍 编辑:程序博客网 时间:2024/05/29 11:45
maximum sum non adjacent elements
- 问题描述:
给定一个数组,找出一个子序列,使得该子序列元素都不相邻,且和最大。
如:[4,1,1,4,2,1]的最大值为9。
代码:
#include <stdio.h>#include <vector>using namespace std;int MSNAE(vector<int>& nums) { int len = nums.size(); if (len==0) { return 0; } int incl = nums[0]; //incl表示当可以包含nums[i]时,前i个元素所能达到的最大值;初始化为第一个元素 int excl = 0; //excl表示不包含第nums[i]时,前i个元素所能达到的最大值;初始化为0; for (int i=1; i<len; i++) { int temp = incl; incl = max(excl+nums[i], incl); //更新incl;1.不包含前一个元素,包括本元素(excl+nums[i]);2. 不包括本元素(incl)的较大值 excl = temp; //excl跟新为可能包括前一个元素的值(一定不包括i所指元素) } return incl;}int main(int argc, const char * argv[]) { vector<int> test = {4,1,1,4,2,1}; int ans = MSNAE(test); printf("%d\n", ans); return 0;}
0 0
- 不相邻子序列最大和
- 不相邻的最大子数组和
- 动态规划求不相邻的最大子数组和
- 动态规划求不相邻的最大子数组和
- 动态规划求不相邻的最大子数组和
- 求不相邻的最大子数组和
- 带负数的数列,求解和最大的相邻子序列之一:性能最佳
- 带负数的数列,求解和最大的相邻子序列之二:代码清晰
- 带负数的数列,求解和最大的相邻子序列之三:穷举法
- [LeetCode] House Robber 求数组中元素两两不相邻的子序列最大和
- [LeetCode] House Robber II 求循环数组中元素两两不相邻的子序列最大和
- 最大子序列和
- 最大子序列和
- 最大和子序列
- 最大子序列和
- 最大子序列和
- 最大子序列和
- 最大子序列和
- 插入排序
- 2017年第一篇:关于EKF2的讨论(总有你想要的)
- 每日F&Q(2017.2.23)
- 那些面试测试岗位时遇到的编程题
- java 子父类构造函数
- 不相邻子序列最大和
- java基本数据类型
- ZooKeeper此例简单介绍基于docker的zookeeper安装与集群搭建
- 【前端】-Dom
- LeetCode-434. Number of Segments in a String
- Oracle查询锁表及处理
- android内存泄露
- 第二次css作业
- PAT 乙级 1001. 害死人不偿命的(3n+1)猜想 (15) Java版