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;
    }
}
相关推荐
好奇龙猫2 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
sp_fyf_20243 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
香菜大丸3 小时前
链表的归并排序
数据结构·算法·链表
jrrz08283 小时前
LeetCode 热题100(七)【链表】(1)
数据结构·c++·算法·leetcode·链表
oliveira-time3 小时前
golang学习2
算法
南宫生4 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
懒惰才能让科技进步5 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
Ni-Guvara5 小时前
函数对象笔记
c++·算法
泉崎5 小时前
11.7比赛总结
数据结构·算法
你好helloworld5 小时前
滑动窗口最大值
数据结构·算法·leetcode