Leetcode 343. Integer Break (Medium) (cpp)

来源:互联网 发布:帝国cms首页模板代码 编辑:程序博客网 时间:2024/06/06 15:56

Leetcode 343. Integer Break (Medium) (cpp)

Tag: Dynamic Programming, Math

Difficulty: Medium


/*343. Integer Break (Medium)Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get.For example, given n = 2, return 1 (2 = 1 + 1); given n = 10, return 36 (10 = 3 + 3 + 4).Note: You may assume that n is not less than 2 and not larger than 58.Hint:There is a simple O(n) solution to this problem.You may check the breaking results of n ranging from 7 to 10 to discover the regularities.*/class Solution {public:int integerBreak(int n) {if (n < 3) {return 1;}vector<int> t(n + 1, 1);for (int i = 3; i <= n; i++) {for (int j = 1; j < i; j++) {t[i] = max(t[i], max(t[j], j) * (i - j));}}return t.back();}};


0 0
原创粉丝点击