给定一个整数的数组,相邻的数不能同时选,求从该数组选取若干整数,使得他们的和最大,要求只能使用o(1)的空间复杂度。

(抽时间再看看 )

// 非相邻数最大和.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <iostream>
using namespace std;/*//该方法全是负数的时候判断错误  int f(int n,int *array){//if (n == 0)  return array[0];if (n < 0)   return 0;return (f(n - 2, array) + array[n]> f(n - 1,array)) ? (f(n - 2, array) + array[n]): f(n - 1, array);}*/
int Max(int a, int b){if (a>b)return a; elsereturn b;
}int getMax(int a[], int len)
{int max1 = a[0];//表示maxSum(n-2);  int max2 = a[0]>a[1] ? a[0] : a[1]; //表示maxSum(n-1);  int max3 = 0; // n cout <<"max1:" << max1 <<" max2:" << max2 << endl;for (int i = 2; i<len; i++){//Max(a[i], Max(max1 + a[i], max2));表示max1<0,且max2<a[i],就抛弃他们,从只选择a[i]//a[i]:表示只加a[i](前面有负数)//max1表示加了a[i]//max2表示没加a[i]max3 = Max(a[i], Max(max1 + a[i], max2));cout<<"i:" <<i<< "a[i]:"<<a[i]<<" max1:" << max1 + a[i] <<" max2:"<< max2 << endl;//max3 = a[i]+max1> max2 ? a[i]+max1:max2;  // 全部是负数也需要考虑的,这个没有max1 = max2;max2 = max3;}return max3;
}int _tmain(int argc, _TCHAR* argv[])
{int *array;array =new int[5];array[0] = 5;array[1] = 2;array[2] = 1;array[3] = 3;array[4] = -2;//cout << 1;int max = getMax(array,5);cout << max;return 0;
}

思考一道题:非相邻数最大和相关推荐

  1. 动态规划系列(4)——不相邻数最大和

    给定数组A=[1,2,4,1,7,8,3],求出数组A中互不相邻的数的最大和. 例如:如果选择了8,则不能选择7和3,在本例中最大的和为1+4+7+3=15 分析,这是一道典型的使用动态规划求解的题目 ...

  2. 浮点数存储格式学习:找到非规格数中最大和最小的数

    在学习<深入理解计算机系统>的浮点数存储里,我想到一个问题,单精度浮点数中,非规格浮点数最大数是几? 00000000011111111111111111111111 符号位:0 指数域: ...

  3. 数组排序之后相邻数的最大差值

    数组排序之后相邻数的最大差值 题目描述 给定一个整形数组arr,返回排序后相邻两数的最大差值 arr = [9, 3, 1, 10].如果排序,结果为[1, 3, 9, 10],9和3的差为最大差值, ...

  4. 对一个数组排序之后求相邻数的最大差值

    题目: 给定一个整形数组arr,返回排序后的相邻两数的最大差值. 时间复杂度为O(N). 解答: 如果用排序法实现,其时间复杂度为O(NlogN),而如果利用桶排序的思想(不是桶排序),可以做到O(N ...

  5. 给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值。

    给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值.要求时间复杂度为O(n),且要求不能用非基于比较的排序. 首先,这个问题明显限制了不能使用直接排序的方式求解.因为基于比较的排序时间复杂度最 ...

  6. CCF 201409-1 相邻数对

    试题编号: 201409-1 试题名称: 相邻数对 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 ...

  7. python将非0数视为false_python 面试题

    1.os.path与sys.path的区别是什么? os.path 主要用于系统文件路径的操作 sys.path 主要是python解释器的系统环境参数的操作 2.re模块中match和search方 ...

  8. oracle查询表占用空,Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询...

    --表名,表占用空间大小(MB),行数 select table_name, round(num_rows * avg_row_len /1024/1024, 8) as total_len, num ...

  9. CCF201409-1 相邻数对

    试题编号: 201409-1 试题名称: 相邻数对 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 输入的第一 ...

最新文章

  1. 各类排序算法总结(作者:__Boost)
  2. Intel GPU及NVIDIA GPU对视频编解码支持情况
  3. 字符串类型的数字比较大小_Python核心知识系列:数字与字符串类型
  4. 嵌套饼图_旭日图的效率,高到饼图都羡慕
  5. js入门笔记整理(二)——操作符
  6. Unity PointCloud开发:Mesh渲染点云
  7. Linux下vmware安装部署
  8. mysql 12_Navicat for MySQL12免费版
  9. svn删除文件或目录后提交失败及解决
  10. 顺丰丰桥接口开发-不限java(LODOP电子面单打印)
  11. android banner3d,XBanner实现3D画廊效果
  12. 怎么快速查找重复文件以及删除重复文件
  13. 产品经理技术脑:怎么看懂接口文档
  14. pyecharts学习笔记
  15. 论文解读:MeLU:Meta-Learned User Preference Estimator for Cold-Start Recommendation
  16. 木瓜移动荣获金茶奖2021年度游戏服务企业称号
  17. android espresso跨程序,在Espresso Android中正确使用IdlingResource的方法
  18. 弘辽科技:拼多多推广单元和推广计划是一样的吗?
  19. 【CV系列】图像算法之一:Randon变换
  20. python面向对象书籍_python面向对象法实现图书管理系统

热门文章

  1. 联想拯救者15isk清灰_清灰和升级容易 联想拯救者14拆机解析
  2. 蝴蝶效应 青蛙现象 鳄鱼法则 马太效应 木桶理论 二八定律(巴莱多定律) 破窗理论 羊群效应
  3. box2d的角色邹形
  4. 代码阅读工具使用入门
  5. 熬夜整理了2021年Python最新学习资料,分享给学弟学妹们【大学生必备】
  6. 游戏开发全免费下载网站:源代码插件模型场景全部免费
  7. html app签名,html5手写签名
  8. 骑士CMS模版注入+文件包含getshell复现
  9. 数据库分类和负载均衡方案
  10. 画一只会动的皮卡丘(上)