7.尽可能花费最大资金额

双11众多商品进行打折销售,小明想购买一些自己心意的商品
但由于受购买资金限制,所以他决定从众多心意商品中购买3件,而且想尽可能的花完资金
现在请你设计一个程序帮助小明计算尽可能花费的最大资金额

输入描述
第一行为整型数组M 数组长度小于100 数组元素记录单个商品的价格
单个商品价格<1000
第二行输入为购买资金的额度R
R<100000

输出描述
输出为满足上述条件的最大花费额度
如果不存在满足上述条件的商品请返回-1

例子1
输入
23,26,36,27
78
输出
76

例子2
输入
23,30,40
26
输出
-1

备注:输入格式正确

 

点击查看代码

import java.util.*;

public class Demo7 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String[] split = sc.nextLine().split(",");
        int money = Integer.parseInt(sc.nextLine());

        int len = split.length;
        int[] ints = new int[len];
        for(int i = 0; i < len; i++){
            ints[i] = Integer.parseInt(split[i]);
        }
        Arrays.sort(ints);

        int sum = -1; //巧妙!!
        for(int i = 0; i < len - 3; i++){
            sum = ints[i] + ints[i + 1] + ints[i + 2];
            if(sum > money){
                if (i != 0) {
                    sum = ints[i - 1] + ints[i] + ints[i + 1];
                }
                break;
            }
        }
        System.out.println(sum);
    }
}

 

总结:先要有个大致解决问题的思路框架,再根据特殊情况来完善框架!

 

posted @ 2022-03-24 20:19  Jukim  阅读(939)  评论(2编辑  收藏  举报