剑指offer_剪绳子

67 阅读1分钟

分析

  1. 要可能多的3
  2. 最大不超过5,且最多包含2个2
  3. %3 == 1 ==》 2个2 ==》4
  4. %3 == 2 ==》 1个2 ==》 6

题目链接:www.acwing.com/problem/con…

Code

/**
 * @param {number} length
 * @return {number}
 */
var maxProductAfterCutting = function(n) {
    //记个结论 1 最大含有5,要经可能多的3, 且最多2个2 (case1 1个2 ==> 6 2个2 ==》4)
    if(n < 3) return 1 * (n - 1);  
    let res = 1;
    if(n%3 === 1){
        res *= 4;
        n -= 4;
    }
    
    if(n%3 === 2){
        res *= 6;
        n -= 5;
    }
    
    while(n > 0){
        res *= 3;
        n -= 3;
    }
    
    return res;
};