题目
- 思路如下
- 将n根木板合并成一根木板,只需要合并n-1次. 所L以循环的条件n>1
- 找出n根木板里的最小和次小的木板,对其进行合并,合并长度记为t
- 删除L里面的最小和次小的木板,并将t添加到L里面去(这里可用一个数组来删除)
- 依次类推,直到L里面只剩下一根木板.,不能合并为止.
方法一 有的情况不能考虑到,如果数组为[8,5,3] 那么经过找最小和次小的数的时候,都会为3,那么程序会报错.
自己可以去验证下
package day03;
import java.util.*;
public class 板子切割问题 {
public static void main(String[] args) {
int n = 3;
int[] l = {
8,5,8};
int minMoney = getMinMoney(n, l);
System.out.println(minMoney);
}
//参数说明 n代表有多少块板子
//l 代表板子切割的长度
//返回 最小的金额
public static int getMinMoney(int n,int[] l){
int temp = 0;
int