我有一个
我已经编写了一个暴力递归方法,它测试了所有可能性。
答案是
我的问题是:
1)是否有动态规划的解决方案? 2)如果有,可以请任何人解释一下吗?
Point
数组。我需要从中选择一部分点,使得这些点的x坐标之和等于y坐标之和。
如果存在多个这样的子集,则需要选择x坐标之和最大的那个。
需要报告x坐标之和。我已经编写了一个暴力递归方法,它测试了所有可能性。
Point[] a = new Point[n];
// ...
private int rec(int i, int x, int y) {
if (i == n - 1) {
if (x + a[i].x == y + a[i].y) return x + a[i].x;
return (x == y) ? x : -1;
}
return Math.max(rec(i + 1, x, y), rec(i + 1, x + a[i].x, y + a[i].y));
}
答案是
rec(0, 0, 0)
。我的问题是:
1)是否有动态规划的解决方案? 2)如果有,可以请任何人解释一下吗?