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;
    }
}
相关推荐
The_Ticker14 分钟前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
Lenyiin1 小时前
02.06、回文链表
数据结构·leetcode·链表
爪哇学长1 小时前
双指针算法详解:原理、应用场景及代码示例
java·数据结构·算法
Dola_Pan1 小时前
C语言:数组转换指针的时机
c语言·开发语言·算法
繁依Fanyi1 小时前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse
烦躁的大鼻嘎1 小时前
模拟算法实例讲解:从理论到实践的编程之旅
数据结构·c++·算法·leetcode
C++忠实粉丝2 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
祁思妙想2 小时前
10.《滑动窗口篇》---②长度最小的子数组(中等)
leetcode·哈希算法
用户37791362947552 小时前
【循环神经网络】只会Python,也能让AI写出周杰伦风格的歌词
人工智能·算法
福大大架构师每日一题2 小时前
文心一言 VS 讯飞星火 VS chatgpt (396)-- 算法导论25.2 1题
算法·文心一言