题目描述
思路分析
这道题有两种情况
(1)长木板和短木板长度相同,此时就只有一种结果
(2)当两者长度不同时,先使用三块短木板,之后每次都用一块长木板替换,这样肯定长度会越来越长,也就满足了从小到大顺序输出。
代码实现
public int[] divingBoard(int shorter, int longer, int k) {
if (k == 0) {
return new int[0];
}
int[] result = new int[k + 1];// 根据规律k块木板有k+1中结果
if (shorter == longer) {
return new int[] { shorter * k };
} else {
result[0] = shorter * k;
for (int i = 1; i < result.length; i++) {
result[i] = result[i - 1] + longer - shorter;
}
}
return result;
}