你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为 shorter,长度较长的木板长度为 longer。你必须正好使用 k 块木板。编写一个方法,生成跳水板所有可能的长度。
返回的长度需要从小到大排列。 :::info 示例:
输入:
shorter = 1
longer = 2
k = 3
输出: {3,4,5,6}
提示:
0 < shorter <= longer
0 <= k <= 100000 ::: 链接:https://leetcode-cn.com/problems/diving-board-lcci

思路

设使用短木板的数量为_i_则有k-i个长木板,所以让_i_[0,k]做一次遍历,记录结果即可。
但与此同时,也要注意k为 0 与 短长木板的长度相等的情况。

  1. var divingBoard = function(shorter, longer, k) {
  2. if (!k) return [];
  3. if (shorter === longer) return [shorter*k];
  4. const res = [];
  5. for (let i = k; i >= 0; i--) {
  6. let sum = i * shorter + (k-i) * longer;
  7. res.push(sum);
  8. }
  9. return res;
  10. };