题目
给你一个正整数 n ,找出满足下述条件的 中枢整数 x :
1 和 x 之间的所有元素之和等于 x 和 n 之间所有元素之和。
返回中枢整数 x 。如果不存在中枢整数,则返回 -1 。题目保证对于给定的输入,至多存在一个中枢整数。
代码
class Solution {
public int pivotInteger(int n) {
//遍历x从n到1,等差数列求和:和=(首项+末项)×项数÷2
int pre=(1+n)*n/2;int after=n;
if(pre==after) return n;
for(int i=n;i>1;i--){
pre-=i;
after=after+i-1;
if(pre==after) return i-1;
}
return -1;
}
}