2020小米校招:01. 小米之家購物

在這裏插入圖片描述
在這裏插入圖片描述

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class xiaomi202001 {


    /*請完成下面這個函數,實現題目要求的功能
    當然,你也可以不按照下面這個模板來作答,完全按照自己的想法來 ^-^
    ******************************開始寫代碼******************************/
    static int solution(int[] prices, int budget) {
        if(budget==0){
            return 0;
        }
        int[] arr = new int[100000];
        Arrays.sort(prices);
        Arrays.fill(arr, Integer.MAX_VALUE);
        arr[0] = 0;
        for (int i = 0; i < budget+1; i++) {
            for (int j = 0; j < prices.length; j++) {
                if(arr[i]!=Integer.MAX_VALUE) {
                    arr[i + prices[j]] = Math.min(arr[i] + 1, arr[i + prices[j]]);
                }
            }
        }
        if(arr[budget]==Integer.MAX_VALUE)
            arr[budget]=-1;
        return arr[budget];
    }
    /******************************結束寫代碼******************************/


    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int res;

        int _prices_size = 0;
        _prices_size = Integer.parseInt(in.nextLine().trim());
        int[] _prices = new int[_prices_size];
        int _prices_item;
        for(int _prices_i = 0; _prices_i < _prices_size; _prices_i++) {
            _prices_item = Integer.parseInt(in.nextLine().trim());
            _prices[_prices_i] = _prices_item;
        }

        int _budget;
        _budget = Integer.parseInt(in.nextLine().trim());

        res = solution(_prices, _budget);
        System.out.println(String.valueOf(res));

    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章