
这段代码我确实是一知半解,但是很服这段代码使用了长度为3地dp2迭代之后赋给dp
public static int maxSumDivThree(int[] nums) {
int [] dp = {0,Integer.MIN_VALUE,Integer.MIN_VALUE};
for(int num:nums){
int [] dp2 = new int[3];
for (int i = 0; i <3 ; ++i) {
dp2[(i+num)%3] = Math.max(dp[(i+num)%3],dp[i]+num);
}
dp = dp2;
}
return dp[0];
}
本文深入探讨了一段DP算法代码,该算法用于找出整数数组中最大子集和,使得该和能被3整除。通过迭代更新长度为3的dp数组,实现了对每个元素的最优选择,最终返回dp[0]作为结果。
581

被折叠的 条评论
为什么被折叠?



