import java.util.ArrayList;
import java.util.List;
public class Main {
public static int solution(List<Integer> redpacks) {
int len = redpacks.size();
int max = 0;
int right = 0,left = 0;
for (int i = 0, j = len - 1; i <= j; ) {
if (left > right) {
right += redpacks.get(j--);
} else if (left < right) {
left += redpacks.get(i++);
}
if (left == right) {
max = left;
if(j >= i)left += redpacks.get(i++);
}
}
return max;
}
}
以下是思路步骤:
举例1 3 4 6 7 14
1.一个长度为len的链表,先反向取一个数,值为right = 14
2.然后正向取一个数 left = 1
3.left < right , 所以正向索引移动,加上下一个数,即 left = 1 + 3 = 4
4.left < right , 所以正向索引移动,加上下一个数,即 left = 4 + 4 = 8
5.left < right , 所以正向索引移动,加上下一个数,即 left = 8 + 6 = 14
6.left = right , 所以最大值max = left = right = 14
7.继续移动正向索引 ,发现正向索引加上反向索引已经等于长度len,结束