这道题不能使用动态规划来解决,因为会越界。用贪心算法找规律可以得到答案(3越多越好,小于等于4取本身的值)
这道题错的原因在于res在存储过程中会越界,最轻微的上溢是 INT_MAX + 1 :结果是 INT_MIN。 最严重的上溢是 INT_MAX + INT_MAX :结果是 -2。 最轻微的下溢是 INT_MIN - 1 :结果是 INT_MAX。 最严重的下溢是 INT_MIN + INT_MIN :结果是 0。 最大值加1时,反而变成范围的最小值,加2变成范围的次小值,这种情况可以想象出一个循环。所以需要先用long保存再使用强制类型转换将Long转化为int。