美文网首页算法
2485. 找出中枢整数

2485. 找出中枢整数

作者: 红与树 | 来源:发表于2023-06-25 13:21 被阅读0次

LC每日一题,参考2485. 找出中枢整数

题目

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

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

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

输入:n = 8
输出:6
解释:6 是中枢整数,因为 1 + 2 + 3 + 4 + 5 + 6 = 6 + 7 + 8 = 21 。
输入:n = 1
输出:1
解释:1 是中枢整数,因为 1 = 1 。

解题思路

  • 枚举:利用等差数列求和公式,用整个数列和与枚举到某个下标时计算的和进行对比。
  • 二分查找:本质是查找,适用二分查找,根据数列和公式转化查找条件。

枚举

class Solution {
    public int pivotInteger(int n) {
        //等差数列求和
        int ans = 0;
        for(int i = 1,sum = 0; i <= n; i++) {
            sum += i;
            if(sum*2 == n*(n+1)/2+i) return i;
            else if(sum*2 > n*(n+1)/2+i) break;
        }
        return -1;
    }
}

复杂度分析

  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

二分查找

class Solution {
    public int pivotInteger(int n) {
        //化简+二分 i*(i+1)/2*2 == n*(n+1)/2+i -> i*i = n*(n+1)/2
        int res = n*(n+1)/2,left = 1,right = n;
        while(left <= right) { //也可直接使用api函数(int) Math.sqrt(res)
            int mid = (left+right)>>1;
            if(mid*mid == res) return mid;
            else if(mid*mid > res) right = mid-1;
            else left = mid+1;
        }
        return -1;
    }
}

复杂度分析

  • 时间复杂度:O(logn)
  • 空间复杂度:O(1)

相关文章

  • 缠中说禅(108)学习14

    教你炒股票 49:利润率最大的操作模式 当下之前未出现该中枢第三类卖点由于中枢震荡依旧,因此,先找出该中枢前面震荡...

  • 算法:找出正确的整数

    题目:一个无序数组里有99个不重复正整数,范围从1到100,唯独缺少一个整数。如何找出这个缺失的整数? 解法一:创...

  • 领扣41

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数。

  • Leetcode 39 组合总和

    题意:给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candida...

  • 16. 3Sum Closest

    题目: 给定一个nums由n个整数和一个整数组成的数组target,找出三个整数nums,使总和最接近target...

  • [编程题] 序列和

    给出一个正整数N和长度L,找出一段长度大于等于L的连续非负整数,他们的和恰好为N。答案可能有多个,我我们需要找出长...

  • Day24 缺失的第一个正数

    给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数 https://leetcode-cn....

  • IOS 算法(基础篇) ----- 到目标元素的最小距离

    给你一个整数数组 nums (下标 从 0 开始 计数)以及两个整数 target 和 start ,请你找出一个...

  • LeetCode 5437. 不同整数的最少数目

    题目 给你一个整数数组 arr 和一个整数 k 。现需要从数组中恰好移除 k 个元素,请找出移除后数组中不同整数的...

  • 漫画算法:找出缺失的整数

    小灰一边回忆一边讲述起当时面试的情景...... 题目:一个无序数组里有99个不重复正整数,范围从1到100,唯独...

网友评论

    本文标题:2485. 找出中枢整数

    本文链接:https://www.haomeiwen.com/subject/edmiydtx.html