标签:剑指offer 结果 最大 solution 分割 思考 固定 public 这一
这个题目是在剑指offer上看到的,当时以为自己看明白了,自己写的时候发现还是思考的不够细致,主要有一下几点:
1,当n = 1、2、3时应该直接返回固定的值,这一点应该大家应该都能想到,我在写的时候漏掉了3.。。。
2,在实际分割的时候定义了rope_maxlen数组来存储每个长度对应的最大分割乘积值,但是0-3的定义如下:
class Solution { public: int cuttingRope(int n) { if (n < 2) { return 0; } if (n == 2) { return 1; } if (n == 3) { return 2; } vector<int> rope_maxlen(n+1); for (int k=0; k<=n; k++) { rope_maxlen[k] = 0; } rope_maxlen[1] = 1; rope_maxlen[2] = 2; rope_maxlen[3] = 3; if (n<4) { return rope_maxlen[n]; } for (int i=4; i<=n; i++) { for (int j=1; j<=i/2; j++) { rope_maxlen[i] = std::max(rope_maxlen[i], rope_maxlen[j]*rope_maxlen[i-j]); } } return rope_maxlen[n]; } };
标签:剑指offer 结果 最大 solution 分割 思考 固定 public 这一
原文地址:https://www.cnblogs.com/rulin/p/13034895.html