zoukankan      html  css  js  c++  java
  • LeetCode–剪绳子

    LeetCode–剪绳子

    博客说明

    文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!

    介绍

    剑指 Offer 14- I. 剪绳子

    主站 343

    题目

    给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]k[1]...*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。

    示例 1:
    输入: 2
    输出: 1
    解释: 2 = 1 + 1, 1 × 1 = 1
    
    示例 2:
    输入: 10
    输出: 36
    解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36
    
    提示:
    2 <= n <= 58
    

    思路

    image-20200904154922063

    代码

    class Solution {
        public int cuttingRope(int n) {
            if(n <= 3){
                return n-1;
            }
            int a = n/3, b = n%3;
            if(b == 0){
                return (int)Math.pow(3,a);
            }else if(b == 1){
                return (int)Math.pow(3,a-1)*4;
            }else{
                return (int)Math.pow(3,a)*2;
            }
        }
    }
    

    感谢

    Leetcode

    以及勤劳的自己,个人博客GitHub

    微信公众号

  • 相关阅读:
    奔跑的绵羊js
    13.差分
    12.子矩阵的和
    11.前缀和
    10.高精度除法
    9.高精度乘法
    8.高精度减法
    7.高精度加法
    6.数的三次方根
    5.数的范围
  • 原文地址:https://www.cnblogs.com/guizimo/p/13614323.html
Copyright © 2011-2022 走看看