1.maven项目包结构:
dao层和db交互,dao层上一层上service层,service再上一层是controller层,util包存放工具类,vo-view object/value object,封装pojo,pojo数据库对象,common存放常量
2.Arrays.fill()设置数组初始值
3.343. 整数拆分
给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。
返回你可以获得的最大乘积。
示例 1:
输入: n = 2
输出: 1
解释: 2 = 1 + 1, 1 × 1 = 1。
解题思路:将当前数字分割成两部分的和,找出这两部分的积、当前最大的积、第一部分与第二部分最大积的乘积,这三个数中的最大值,即为当前数字积最大的分割。使用一个数组来存储每个数字计算的结果,从第一个可以分割为两个正整数的和的数2开始,自底向上地找到n的最大分割积
class Solution {
public int integerBreak(int n) {
int[] memo = new int[n+1];
Arrays.fill(memo, -1);
memo[1] = 1;
for(int i=2; i<=n; i++){
for(int j=1; j<=i-1; j++){
memo[i] = max3(memo[i], j*(i-j), j*memo[i-j]);
}
}
return memo[n];
}
public int max3(int a, int b, int c){
return Math.max(a, Math.max(b, c));
}
}