LeetCode-2485-找出中枢整数

题目描述:

给你一个正整数 n ,找出满足下述条件的 中枢整数 x :

1 和 x 之间的所有元素之和等于 x 和 n 之间所有元素之和。

返回中枢整数 x 。如果不存在中枢整数,则返回 -1 。题目保证对于给定的输入,至多存在一个中枢整数。

题目链接:LeetCode-2485-找出中枢整数

解题思路:

方法一:双指针:一前一后走,当sumLeft == sumRight并且i==j时退出while循环

方法二:根据数学公式推导
方法一代码实现:

java 复制代码
class Solution {
    public int pivotInteger(int n) {
        // 双指针:一前一后走,当sumLeft == sumRight并且i==j时退出while循环
        int i = 1, j = n;
        int sumLeft = 1, sumRight = n;
        int sum=n*(n+1)/2;
        while (i <= j) {
            if (sumLeft == sumRight) {
                if (i == j) break;
                i++;
                sumLeft += i;
            } else if (sumLeft < sumRight){
                i++;
                sumLeft += i;
            }else {
                j--;
                sumRight += j;
            }
        }
        return i == j ? i : -1;
    }
}

题解可以看官方给的解题思路:传送门

方法二代码实现:

java 复制代码
class Solution {
    public int pivotInteger(int n) {
        int sum=n*(n+1)/2;
        int tmp=(int) Math.sqrt(sum);
        return tmp*tmp==sum ? tmp:-1;
    }
}
相关推荐
int型码农3 小时前
数据结构第八章(一) 插入排序
c语言·数据结构·算法·排序算法·希尔排序
UFIT3 小时前
NoSQL之redis哨兵
java·前端·算法
喜欢吃燃面3 小时前
C++刷题:日期模拟(1)
c++·学习·算法
SHERlocked933 小时前
CPP 从 0 到 1 完成一个支持 future/promise 的 Windows 异步串口通信库
c++·算法·promise
怀旧,4 小时前
【数据结构】6. 时间与空间复杂度
java·数据结构·算法
积极向上的向日葵4 小时前
有效的括号题解
数据结构·算法·
GIS小天4 小时前
AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月7日第101弹
人工智能·算法·机器学习·彩票
_Itachi__4 小时前
LeetCode 热题 100 74. 搜索二维矩阵
算法·leetcode·矩阵
不忘不弃4 小时前
计算矩阵A和B的乘积
线性代数·算法·矩阵
不爱写代码的玉子4 小时前
HALCON透视矩阵
人工智能·深度学习·线性代数·算法·计算机视觉·矩阵·c#