Keshawn_lu's Blog

Leetcode 面试题 16.11. 跳水板

字数统计: 238阅读时长: 1 min
2020/07/08 Share

题目简介:

你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。

返回的长度需要从小到大排列。

示例:

1
2
3
4
5
输入:
shorter = 1
longer = 2
k = 3
输出: {3,4,5,6}

提示:

  • 0 < shorter <= longer
  • 0 <= k <= 100000

思路:

因为一共就k块板,所以木板的长度为longer * i + shorter * (k - i)(长度从小到大排序)。

tips:

  • k == 0时,直接返回空数组。
  • shorter == longer时,木板长度只有shorter * k一种情况。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:

vector<int> divingBoard(int shorter, int longer, int k) {

if(k == 0)
return {};

vector<int> res;

if(shorter == longer)
return {shorter * k};

for(int i = 0; i <= k; i++){

res.push_back(longer * i + shorter * (k - i));
}

return res;
}
};
CATALOG
  1. 1. 题目简介:
  2. 2. 思路:
  3. 3. 代码如下: