思考一道题:非相邻数最大和
给定一个整数的数组,相邻的数不能同时选,求从该数组选取若干整数,使得他们的和最大,要求只能使用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;
}
思考一道题:非相邻数最大和相关推荐
- 动态规划系列(4)——不相邻数最大和
给定数组A=[1,2,4,1,7,8,3],求出数组A中互不相邻的数的最大和. 例如:如果选择了8,则不能选择7和3,在本例中最大的和为1+4+7+3=15 分析,这是一道典型的使用动态规划求解的题目 ...
- 浮点数存储格式学习:找到非规格数中最大和最小的数
在学习<深入理解计算机系统>的浮点数存储里,我想到一个问题,单精度浮点数中,非规格浮点数最大数是几? 00000000011111111111111111111111 符号位:0 指数域: ...
- 数组排序之后相邻数的最大差值
数组排序之后相邻数的最大差值 题目描述 给定一个整形数组arr,返回排序后相邻两数的最大差值 arr = [9, 3, 1, 10].如果排序,结果为[1, 3, 9, 10],9和3的差为最大差值, ...
- 对一个数组排序之后求相邻数的最大差值
题目: 给定一个整形数组arr,返回排序后的相邻两数的最大差值. 时间复杂度为O(N). 解答: 如果用排序法实现,其时间复杂度为O(NlogN),而如果利用桶排序的思想(不是桶排序),可以做到O(N ...
- 给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值。
给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值.要求时间复杂度为O(n),且要求不能用非基于比较的排序. 首先,这个问题明显限制了不能使用直接排序的方式求解.因为基于比较的排序时间复杂度最 ...
- CCF 201409-1 相邻数对
试题编号: 201409-1 试题名称: 相邻数对 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 ...
- python将非0数视为false_python 面试题
1.os.path与sys.path的区别是什么? os.path 主要用于系统文件路径的操作 sys.path 主要是python解释器的系统环境参数的操作 2.re模块中match和search方 ...
- oracle查询表占用空,Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询...
--表名,表占用空间大小(MB),行数 select table_name, round(num_rows * avg_row_len /1024/1024, 8) as total_len, num ...
- CCF201409-1 相邻数对
试题编号: 201409-1 试题名称: 相邻数对 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 输入的第一 ...
最新文章
- 各类排序算法总结(作者:__Boost)
- Intel GPU及NVIDIA GPU对视频编解码支持情况
- 字符串类型的数字比较大小_Python核心知识系列:数字与字符串类型
- 嵌套饼图_旭日图的效率,高到饼图都羡慕
- js入门笔记整理(二)——操作符
- Unity PointCloud开发:Mesh渲染点云
- Linux下vmware安装部署
- mysql 12_Navicat for MySQL12免费版
- svn删除文件或目录后提交失败及解决
- 顺丰丰桥接口开发-不限java(LODOP电子面单打印)
- android banner3d,XBanner实现3D画廊效果
- 怎么快速查找重复文件以及删除重复文件
- 产品经理技术脑:怎么看懂接口文档
- pyecharts学习笔记
- 论文解读:MeLU:Meta-Learned User Preference Estimator for Cold-Start Recommendation
- 木瓜移动荣获金茶奖2021年度游戏服务企业称号
- android espresso跨程序,在Espresso Android中正确使用IdlingResource的方法
- 弘辽科技:拼多多推广单元和推广计划是一样的吗?
- 【CV系列】图像算法之一:Randon变换
- python面向对象书籍_python面向对象法实现图书管理系统