-
贪婪算法
- package convex;
-
- import java.util.Arrays;
-
- /**
- * 输入一个C,
- * 再输入N个不同面值的纸币
- * 组合成C,求出所用纸币的张数最少的张数
- * 比如: C=100,N=5 有5个不同的面值,1,5,20,80,90
- * 最后输出的结果为2
- *
- * 如果是排序的,复杂度为o(n^2),非排序的话,复杂度为o(n*logn+n^2) 采用的方法:贪婪算法
- *
- * @author B.Chen
- */
- public class CalMoney {
-
- public static int calMoney(int c, int[] array, int length) {
- int total = 0;
- if (c != 0) {
- while (c < array[length - 1]) {
- length--;
- }
- total = c / array[length - 1]
- + calMoney(c % array[length - 1], array, length - 1);
- }
- return total;
- }
-
- public static void main(String[] args) {
- int[] a = new int[] { 5, 1, 80, 20, 90, 200, 500, 700 };
- Arrays.sort(a);
- int min = 999;
- for (int i = a.length; i > 0; i--) {
- int count = calMoney(100, a, i);
- if (min > count) {
- min = count;
- }
- }
- System.out.println(min);
- }
- }
-
相关阅读:
安装torchtext
RuntimeError: CUDA error: invalid device ordinal
mongodb aggregate $unwind
pytorch安装与入门(二)--tensor的基本操作
pytorch安装与入门(一)
iOS开发小技巧--iOS程序进入后台运行的实现
iOS开发小技巧--计算label的Size的方法总结
iOS开发小技巧--纯代码自定义cell
iOS开发小技巧--iOS中设置applicationIconBadgeNumber遇到的问题
iOS开发中的错误整理,Changing the delegate of a tab bar managed by a tab bar controller is not allowed
-
原文地址:https://www.cnblogs.com/xinzhuangzi/p/4100616.html
Copyright © 2020-2023
润新知