mirror of
https://github.com/CyC2018/Interview-Notebook.git
synced 2026-10-30 07:33:45 +00:00
Update 14. 剪绳子.md
示例代码块的语言标注改为 text,第一人称改为客观陈述。
This commit is contained in:
+2
-2
@@ -8,7 +8,7 @@
|
||||
|
||||
把一根绳子剪成多段,并且使得每段的长度乘积最大。
|
||||
|
||||
```html
|
||||
```text
|
||||
n = 2
|
||||
return 1 (2 = 1 + 1)
|
||||
|
||||
@@ -34,7 +34,7 @@ return 36 (10 = 3 + 3 + 4)
|
||||
|
||||
将绳子拆成 6 和 n-6,因为 6=3+3,而 6\<3\*3,所以不能出现 6 的绳子,而是拆成 3 和 3。这里 6 同样可以拆成 6=2+2+2,但是 3(n - 3) - 2(n - 2) = n - 5 \>= 0,在 n\>=5 的情况下将绳子拆成 3 比拆成 2 效果更好。
|
||||
|
||||
继续拆成更大的绳子可以发现都比拆成 2 和 3 的效果更差,因此我们只考虑将绳子拆成 2 和 3,并且优先拆成 3,当拆到绳子长度 n 等于 4 时,也就是出现 3+1,此时只能拆成 2+2。
|
||||
继续拆成更大的绳子可以发现都比拆成 2 和 3 的效果更差,因此只考虑将绳子拆成 2 和 3,并且优先拆成 3,当拆到绳子长度 n 等于 4 时,也就是出现 3+1,此时只能拆成 2+2。
|
||||
|
||||
```java
|
||||
public int cuttingBamboo(int bamboo_len) {
|
||||
|
||||
Reference in New Issue
Block a user