小米2020校招笔试题及答案

小米2020校招笔试题及答案


2023年11月25日发(作者:苹果8图片颜色)

⼩⽶2020校招笔试题及答案

这⾥⽤的是动态规划做的,递归⽅程是:dp[i] = dp[i - prices[j]] + 1;

package com.test;

import java.io.*;

import java.util.*;

import java.text.*;

import java.math.*;

import java.util.regex.*;

public class Test4 {

/*

* ^-^

请完成下⾯这个函数,实现题⽬要求的功能当然,你也可以不按照下⾯这个模板来作答,完全按照⾃⼰的想法来开始写代码

******************************/

static int solution(int[] prices, int budget) {

//

定义⼀个每个预算可买最少产品的数组

int[] dp = new int[budget + 1]; // 00

预算为可买

for (int i = 1; i <= budget; i++) {

for (int j = 0; j < prices.length; j++) {

if (prices[j] <= i) {

dp[i] = dp[i - prices[j]] + 1;

}

}

System.out.println("预算为" + i + "需要的最少硬币数" + dp[i]);

//return dp[i];

}

return -1;

}

/****************************** ******************************/

结束写代码

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));

}

}


发布者:admin,转转请注明出处:http://www.yc00.com/num/1700884523a1034168.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信