/*** * @author Zen Johnny* @date 2018年3月31日 下午10:04:48**/
package freeTest.dynamicProgramming;import java.util.Scanner;/*动态规划之币值最大化*/
/*问题描述:给定一排n个硬币,其面值均为整数C1, C2, ..., Cn, 这些整数并不一定两两不同。问如何选择硬币,使得在其【原始位置互不相邻】的条件下,所选硬币的总金额最大。
*/
public class MaxAmount {/*动态规划算法策略*//*递推关系:F(n)为当前的最大化币值F(n) = max{Cn + F(n-2),F(n-1)},n>1F(0)=0;F(1)=C1;*/public static double maxAmount(double coins[], int pos) {if(pos>1) {return Math.max(maxAmount(coins, pos - 2) + coins[pos], maxAmount(coins, pos - 1));} else if(pos == 1) {return coins[0];} else {//pos == 0return 0;} }public static void main(String args[]) {Scanner scanner = new Scanner(System.in);int size;double [] coins;System.out.println("硬币个数:");size = scanner.nextInt();coins = new double [size];System.out.println("请输入币值数组:");for(int i=0;i<size;i++) {coins[i] = scanner.nextDouble();}System.out.printf("[Max Amount] %f\n", maxAmount(coins, size-1));;}
}

  

output:

硬币个数:
9
请输入币值数组:
1 1 2 10 6 2 10 8 12
[Max Amount] 33.000000

  

转载于:https://www.cnblogs.com/johnnyzen/p/8684638.html

[C++]动态规划系列之币值最大化相关推荐

  1. 动态规划——硬币找零和币值最大化问题

    一.硬币找零问题 1.问题 有面值为1元.3元和5元的硬币若干枚,给定一个输入面额,问如何采用最少的硬币数目,得到当前面额 2.思路 找出状态转移方程,每次可以拿取1元.3元或者5元的硬币,每次拿取, ...

  2. 动态规划解决币值最大化问题

    币值最大化 问题描述 给定一排n个硬币,其面值均为整数c1, c2, -, cn, 这些整数并不一定两两不同.问如何选择硬币,使得在其原始位置互不相邻的条件下,所选硬币的总金额最大. 解题思路 上述最 ...

  3. 九十四、动态规划系列之路径问题

    @Author:Runsen 在动态规划最短路径经常提及,在上几篇介绍过相关的最短路径的问题,介绍过使用Dijkstra算法去求解,但是Dijkstra算法是基于贪心算法,按路径长度递增的次序一步一步 ...

  4. 动态规划系列问题—从小白到大佬的入门、进阶之旅!!!

    前言 本篇文章写了将近一万五千字,整理了关于动态规划系列问题的绝大部分分支,包括动态规划的介绍,相关术语等基础内容,也有区间DP,状压DP等进阶知识. 不管你是刚学习该算法的小白,还是对该算法有了一定 ...

  5. java动态规划鸡蛋问题_动态规划系列/高楼扔鸡蛋问题.md · lipengfei/fucking-algorithm - Gitee.com...

    # 经典动态规划问题:高楼扔鸡蛋 今天要聊一个很经典的算法问题,若干层楼,若干个鸡蛋,让你算出最少的尝试次数,找到鸡蛋恰好摔不碎的那层楼.国内大厂以及谷歌脸书面试都经常考察这道题,只不过他们觉得扔鸡蛋 ...

  6. 破解大厂最难算法面试题:动态规划之股票买卖收益最大化

    最近有个猎头突然给我推荐一份工作,面试流程是先在网上做几道测试题.我突然发现这类网上测试有一个规律,如果面试的是外企那么通常在HakerRank上做题,例如亚马逊,如果面试的是国内企业,例如华为等,通 ...

  7. 九十三、动态规划系列之股票问题(下)

    @Author:Runsen 动态规划必须要面对股票系列,背包系列差不多了,那就上吧. 股票买卖这一类的问题,都是给一个输入数组,里面的每个元素表示的是每天的股价,并且你只能持有一支股票(也就是你必须 ...

  8. 九十二、动态规划系列之股票问题(上)

    @Author:Runsen 动态规划必须要面对股票系列,背包系列差不多了,那就上吧. 文章目录 买卖股票的最佳时机(买一次) 买卖股票的最佳时机(买 N 次) 买卖股票的最佳时机(买 2 次) 买卖 ...

  9. 九十一、动态规划系列 背包问题之混合背包

    @Author:Runsen @Date:2020/09/27 背包系列,是动态规划里一类典型的问题,主要有:01背包,完全背包,多重背包,混合背包,二维费用背包,分组背包,有依赖背包和泛化物品等.也 ...

  10. 九十、动态规划系列背包问题之多重背包

    @Author:Runsen 曾几何时,才记得自己还是大一军训的菜鸟,带着 迷茫和憧憬踏入大学,踏入化工学院,却踏入这个行业,殊不知岁月是最高明的小偷,偷走时间,带走青春,一点线索也不留.大学的玩命学 ...

最新文章

  1. [Sdoi2017]硬币游戏 [高斯消元 KMP]
  2. [ios]NSLock锁
  3. ACCESS中使用存储过程
  4. 收到postmaster附件被删除的退信
  5. 图解DOM中关于对象范围的属性
  6. 微信小程序自定义波浪组件
  7. python 多环境安装
  8. 前格式 直接将转换为当_如何将word转化为PDF格式?1分钟学会文档转换
  9. 【黑盒测试用例设计方法5】正交试验法及其示例
  10. MATLAB对CT图读取,写入
  11. Matlab信道容量的迭代计算实验
  12. linux无法识别raid,linux – 无法从失败的RAID中恢复
  13. 世界四大红茶及中国十大名茶
  14. html图片标签 imag
  15. MBProgressHUD等待框背景色与菊花等待框颜色修改
  16. 第三方推送服务:个推服务推送流程
  17. 合路器Combiner Multiplexer
  18. 【Java】Ceph对Swift的支持及Java…
  19. 能够在乱世中_东夏国,为何在乱世中还可以立国?是有什么原因呢?
  20. 数据库系统概论第五版课后习题

热门文章

  1. 认认真真推荐几个ATM大神的公众号
  2. 微信号php756,微信机器人开发者常说的“提62”是什么?微信62数据是什么意思?...
  3. 高中数学40分怎么办_高中数学新教材都有哪些变化?
  4. USB设备驱动理解(wds)
  5. 昂贵的聘礼 - poj 1062 (Dijkstra+枚举)
  6. [译]简单声明Lua类
  7. 升级 Node.js 版本遇到的 co 和 pm2 问题解析
  8. paramiko获取远程主机的环境变量
  9. 热烈庆祝blog开通
  10. 百度霸屏技术的源码发布