https://leetcode.com/problems/integer-break/

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

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.

Example 1:

Input: 2
Output: 1 Explanation: 2 = 1 + 1, 1 × 1 = 1.

Example 2:

Input: 10
Output: 36 Explanation: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36.

代码:

class Solution {
public:
    int integerBreak(int n) {
        if(n == 2 || n == 3) return n - 1;
        int ans = 1;
        while(n > 4) {
            ans *= 3;
            n -= 3;
        }
        return ans * n;
    }
};

  找规律 如果想乘积最大要把 3 都拆出来才可以

今天看扩展欧几里得 推到一半卡住 怎么都不会了 郁闷 && 暴躁

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄