File tree Expand file tree Collapse file tree 1 file changed +70
-0
lines changed Expand file tree Collapse file tree 1 file changed +70
-0
lines changed Original file line number Diff line number Diff line change 1+ ![ ] ( https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL2Nob2NvbGF0ZTE5OTkvY2RuL2ltZy8yMDIwMDgyODE0NTUyMS5qcGc?x-oss-process=image/format,png )
2+ > 仰望星空的人,不应该被嘲笑
3+
4+ ## 题目描述
5+ 你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。
6+
7+ 返回的长度需要从小到大排列。
8+
9+ 示例 1
10+
11+ ``` javascript
12+ 输入:
13+ shorter = 1
14+ longer = 2
15+
16+ k = 3
17+ 输出: [3 ,4 ,5 ,6 ]
18+ 解释:
19+ 可以使用 3 次 shorter,得到结果 3 ;使用 2 次 shorter 和 1 次 longer,得到结果 4 。以此类推,得到最终结果。
20+ ```
21+ 提示:
22+
23+ ``` javascript
24+ 0 < shorter <= longer
25+ 0 <= k <= 100000
26+ ```
27+
28+ 来源:力扣(LeetCode)
29+ 链接:https://leetcode-cn.com/problems/diving-board-lcci
30+ 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
31+
32+ ## 解题思路
33+ 排列组合也算比较简单,需要 ` k ` 个板子,当我们短板有 ` i ` 个的时候,长板子就是 ` k-i ` 个,由于题目要求是将结果从小到大进行排序,那么我们起初就尽可能多的取短板子,最后结果就是通过 ` [0,k] ` 范围内遍历一遍即可。
34+
35+ 对于特殊情况,即短板和长板长度相同时,我们只需要返回 ` k*len ` 即可,不然会重复计算。
36+
37+ ``` javascript
38+ var divingBoard = function (shorter , longer , k ) {
39+ if (k=== 0 ) return []
40+ if (shorter === longer) return [k* shorter]
41+ let res = []
42+ for (let i= k;i>= 0 ;i-- ){
43+ let shortCnt = i
44+ let longCnt = k- i
45+ let cnt = shortCnt* shorter + longCnt* longer
46+ res .push (cnt)
47+ }
48+ return res
49+ };
50+ ```
51+
52+
53+
54+
55+ ## 最后
56+ 文章产出不易,还望各位小伙伴们支持一波!
57+
58+ 往期精选:
59+
60+ <a href =" https://github.com/Chocolate1999/Front-end-learning-to-organize-notes " >小狮子前端の笔记仓库</a >
61+
62+ <a href =" https://yangchaoyi.vip/ " >访问超逸の博客</a >,方便小伙伴阅读玩耍~
63+
64+ ![ ] ( https://img-blog.csdnimg.cn/2020090211491121.png#pic_center )
65+
66+ ``` javascript
67+ 学如逆水行舟,不进则退
68+ ```
69+
70+
You can’t perform that action at this time.
0 commit comments