首页 > 其他分享 >343. Integer Break

343. Integer Break

时间:2022-10-24 22:34:25浏览次数:32  
标签:int max Break bp 343 Integer Input Example Math


把一个整数拆分成至少两个正整数的和,要求拆分后的整数的乘积最大。

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.

动态规划

数值大的依赖于数值小的,所以找到状态转移公式很重要。

​bp[i] = Math.max(j * bp[i - j], j *(i - j))​

class Solution {
public int integerBreak(int n) {
int[] bp = new int[n + 1];
bp[1] = 1;
bp[2] = 1;
for (int i = 3; i <= n; i++) {
for (int j = 1; j < i; j++) {
bp[i] = Math.max(bp[i], Math.max(j * bp[i - j], j *(i - j)));
}
}
return bp[n];
}
}


标签:int,max,Break,bp,343,Integer,Input,Example,Math
From: https://blog.51cto.com/u_7841967/5791480

相关文章

  • 2.Integer源码解析
    1.取值范围和基本数据类型源码publicfinalclassIntegerextendsNumberimplementsComparable<Integer>{//该值用于定义Integer取值的最小值@Nativepublicst......
  • 剑指Offer-14-剪绳子/力扣-343-整数拆分
    对于一段绳子,第一刀下去可以将绳子分成i和n-i两段,其中i的取值范围为[1,n-1]dp[n]表示n可分成的最大乘积和,dp[n]=max(dp[n],max(i*n-i,i*f(n-i)))初始化:全部初始化为1i......
  • Java中break ,continue ,return 的区别及作用
    break跳出总上一层循环,不再执行循环(结束当前的循环体)continue跳出本次循环,继续执行下次循环(结束正在执行的循环进入下一个循环条件)return程序返回,不再执行下面的代......
  • breakout靶机
    breakout:https://www.vulnhub.com/entry/empire-breakout,751/开机显示ip也可以不用扫描首先使用nmap扫描去访问网页使用dirb扫描这个网页发现并没有什么查看原码......
  • break ,continue,retrun的区别
    break,continue,retrun的区别1:break在循环体内结束整个循环过程for(vari=1;i<=5;i++){ if(i==3){ break; } //只会输出到2结束循环 console.log(i);}......
  • Resilience4J通过yml设置circuitBreaker
    介绍Resilience4j是一个轻量级、易于使用的容错库,其灵感来自NetflixHystrix,但专为Java8和函数式编程设计。springcloud2020升级以后Hystrix被官方移除,Resilience4目前......
  • 关于ES索引被聚合查询导致filedata堵塞 (pressure too high, (smooth) bulk request ci
    今天在生产使用kibana查询了一条聚合语句,因为数据量比较大(40亿+),导致fielddatacache飙升,影响了写入,根据官方文档,进行如下操作:执行命令,查询filedatacache使用比较大的索引......
  • java--Integer和Character常用方法
    //装箱:基本类型转换为包装类对象。通过包装类.valueOf();实现//Integernum2=Integer.valueOf(100);   Integernum1=100;   Integernum3=newInte......
  • luogu P3685 [CERC2016]不可见的整数 Invisible Integers
    题面传送门真的吐了,写了五六个小时。首先我们不考虑两边都能走,只考虑向左走,那么的话如果两个从左到右的集合分别为\(S1,S2\),则\(S1\subsetS2\),且除去\(S1\)已经匹配掉的......
  • Java中for循环中用break是跳出内层循环还是外层循环
    背景:我们知道:for循环中常用“continue”跳过当前循环执行下个循环,常用“break”跳出循环,但是在for循环嵌套中break是仅跳出内层循环还是跳出所有循环呢?测试:public......