Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc781c49

Browse files
committed
add 16_11
1 parent81ed96d commitc781c49

File tree

3 files changed

+104
-0
lines changed

3 files changed

+104
-0
lines changed

‎README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
| 9|[Palindrome Number][0009]| Math|
3333
| 13|[Roman to Integer][0013]| Math, String|
3434
| 14|[Longest Common Prefix][0014]| String|
35+
| 16.11|[跳水板(Diving Board LCCI)][16_11]| 递归、记忆化|
3536
| 20|[Valid Parentheses][0020]| Stack, String|
3637
| 21|[Merge Two Sorted Lists][0021]| Linked List|
3738
| 26|[Remove Duplicates from Sorted Array][0026]| Array, Two Pointers|
@@ -121,6 +122,7 @@
121122
[0009]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0009/README.md
122123
[0013]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0013/README.md
123124
[0014]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0014/README.md
125+
[16_11]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/16_11/README.md
124126
[0020]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0020/README.md
125127
[0021]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0021/README.md
126128
[0026]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0026/README.md

‎note/16_11/README.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#[跳水板(Diving Board LCCI)][title]
2+
3+
##题目描述
4+
5+
你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为`shorter`,长度较长的木板长度为`longer`。你必须正好使用`k`块木板。编写一个方法,生成跳水板所有可能的长度。
6+
7+
返回的长度需要从小到大排列。
8+
9+
**示例:**
10+
11+
```
12+
输入:
13+
shorter = 1
14+
longer = 2
15+
k = 3
16+
输出: {3,4,5,6}
17+
```
18+
19+
**提示:**
20+
21+
* 0 < shorter <= longer
22+
* 0 <= k <= 100000
23+
24+
**标签:** 递归、记忆化
25+
26+
27+
##思路
28+
29+
这题乍一看,好像得用递归或动态规划来解,仔细一想,其实就是高中数学学过的等差数列知识。
30+
31+
`k == 0` 时,返回`[]` 即可;
32+
33+
`shorter == longer` 时,返回`[k * shorter]` 即可;
34+
35+
`shorter != longer` 时,那么其实就是一个首项为`k * shorter`,末项为`k * longer`,公差为`longer - shorter` 的等差数列么;
36+
37+
我们根据以上情况就可以写出如下代码了:
38+
39+
40+
```java
41+
publicclassSolution {
42+
publicint[]divingBoard(intshorter,intlonger,intk) {
43+
if (k==0) {
44+
returnnewint[0];
45+
}
46+
if (shorter== longer) {
47+
returnnewint[]{shorter* k};
48+
}
49+
int[] ans=newint[k+1];
50+
int st= k* shorter;// 等差数列的首项
51+
int delta= longer- shorter;// 公差
52+
for (int i=0; i<= k; i++) {
53+
ans[i]= st+ i* delta;
54+
}
55+
return ans;
56+
}
57+
}
58+
```
59+
60+
61+
##结语
62+
63+
如果你同我一样热爱数据结构、算法、LeetCode,可以关注我 GitHub 上的 LeetCode 题解:[awesome-java-leetcode][ajl]
64+
65+
66+
67+
[title]:https://leetcode-cn.com/problems/diving-board-lcci
68+
[ajl]:https://github.com/Blankj/awesome-java-leetcode
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
packagecom.blankj.easy._16_11;
2+
3+
importjava.util.Arrays;
4+
5+
/**
6+
* <pre>
7+
* author: Blankj
8+
* blog : http://blankj.com
9+
* time : 2020/07/08
10+
* desc :
11+
* </pre>
12+
*/
13+
publicclassSolution {
14+
publicint[]divingBoard(intshorter,intlonger,intk) {
15+
if (k ==0) {
16+
returnnewint[0];
17+
}
18+
if (shorter ==longer) {
19+
returnnewint[]{shorter *k};
20+
}
21+
int[]ans =newint[k +1];
22+
intst =k *shorter;// 等差数列的首项
23+
intdelta =longer -shorter;// 公差
24+
for (inti =0;i <=k;i++) {
25+
ans[i] =st +i *delta;
26+
}
27+
returnans;
28+
}
29+
30+
publicstaticvoidmain(String[]args) {
31+
Solutionsolution =newSolution();
32+
System.out.println(Arrays.toString(solution.divingBoard(1,2,3)));
33+
}
34+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp