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

    剑指offer

    剪绳子

    贪心算法

    public class Solution {
        public int cutRope(int target) {
    
            //分解一定程度得到的就是2与3之间的关系,3越多越好
            //当%3的余数是0  6%3=2······0   3+3  =》3*3=9
                //这个时候全是3,乘积最大毕竟 2*2*2<3*3
            //当%3的余数是1  7%3=2······1
                                //    3+3+1  =》3*3=9
                                 //    2+2+3=》2*2*3=12
            //分出一个1 然后凑成2个2
            //当%3的余数是2  8%3=2······2
                                   //    3+3+1  =》3*3=9
                                 //    2+2+3=》2*2*3=12
            //注意到取余得到的值决定2的个数,用当前数除以3的到的值决定3的个数
            
            
            //试数,1---》0*1;2---》1*1;3---》1*2
            if(target<=3&&target>0){
                return target -1;
            }
            
            
            int p = 0;//商
            int q = 0;//余数
             p = target/3;
             q = target%3;
            double res = 0;//保存最终结果,这个地方用到了pow函数,返回值类型为doble,所以为了符合题意,要强转为整形int
            if(q == 0){
                //余数为0,说明全是3
                res = Math.pow(3,p);
            }
            if(q == 1){
                //余数为1,2的个数加一个,3的个数少一个
                res =2*2* Math.pow(3,p-1);
            }
            if(q == 2){
                //余数为2,拿个2和全部的3相乘
                res = 2*Math.pow(3,p);
            }
            return (int) res;
        }
    }
    
  • 相关阅读:
    elment ui 日期限制
    javascript中的编码与解码
    vue3 px 转ref
    css 波浪线
    初始化css
    vue 3 的复制功能 vue-clipboard3
    二维数组转一维数组、对象数组互斥去重
    分享几个数组方法
    前端生成图形验证码
    rem自适应布局,移动版
  • 原文地址:https://www.cnblogs.com/albertshine/p/13426722.html
Copyright © 2011-2022 走看看