2485.找出中枢整数

题目描述:

给你一个正整数 n ,找出满足下述条件的 中枢整数 x :
1 和 x 之间的所有元素之和等于 x 和 n 之间所有元素之和。
返回中枢整数 x 。如果不存在中枢整数,则返回 -1 。题目保证对于给定的输入,至多存在一个中枢整数。

示例:

来源:力扣(LeetCode)
来源:力扣(LeetCode)
来源:力扣(LeetCode)

解题思路:

前n位到前m位的和:(n+m)(n-m+1)/2
中枢整数x满足:(1+x)
(x-1+1)/2=(x+n)(n-x+1)/2
化简得:x²=(n²+n)/2

代码附上:

class Solution {
    public int pivotInteger(int n) {
        int sum=(n*n+n)/2;
        int x=(int)Math.sqrt(sum);
        if(x*x==sum) return x;
        return -1;
    }
}

你可能感兴趣的:(#,每日1题,算法,leetcode,笔记,java,数据结构)