LeetCode 2485. 找出中枢整数

news/2025/2/21 14:44:40

【LetMeFly】2485.找出中枢整数

力扣题目链接:https://leetcode.cn/problems/find-the-pivot-integer/

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

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

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

 

示例 1:

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

示例 2:

输入:n = 1
输出:1
解释:1 是中枢整数,因为 1 = 1 。

示例 3:

输入:n = 4
输出:-1
解释:可以证明不存在满足题目要求的整数。

 

提示:

  • 1 <= n <= 1000

方法一:数学

如果“1 和 x 之间的所有元素之和等于 x 和 n 之间所有元素之和”,

那么有:

1 + 2 + 3 + . . . + x = x + ( x + 1 ) + . . . + n 1 + 2 + 3 + ... + x = x + (x + 1) + ... + n 1+2+3+...+x=x+(x+1)+...+n

于是有:

x ∗ ( x + 1 ) 2 = ( n − x + 1 ) ∗ ( x + n ) 2 \frac{x * (x + 1)}{2} = \frac{(n - x + 1) * (x + n)}{2} 2x(x+1)=2(nx+1)(x+n)

解得:

x = n 2 + n 2 x = \sqrt{\frac{n^2 + n}{2}} x=2n2+n

因为 n 2 + n = n ( n + 1 ) n^2 + n=n(n+1) n2+n=n(n+1)一定是偶数,所以其一定能整除 2 2 2

我们只需要判断一下 n 2 + n 2 \frac{n^2 + n}{2} 2n2+n是否是平方数就好了

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

AC代码

C++

/*
1 + 2 + 3 + ... + x = x + (x + 1) + ... + n

x * (x + 1) / 2 = (n - x + 1) * (x + n) / 2

x * (x + 1) = (n - x + 1) * (x + n)

x^2 + x = nx - x^2 + x + n^2 - nx + n

2x^2 = n^2 + n

x = sqrt((n^2 + n) / 2)

n^2 + n = n(n + 1)一定是偶数,能整除2

就看n^2 + n是不是平方数了
*/

class Solution {
public:
    int pivotInteger(int n) {
        int ans = sqrt((n * n + n) / 2);
        return ans * ans == (n * n + n) / 2 ? ans : -1;
    }
};

Python

# from math import sqrt

class Solution:
    def pivotInteger(self, n: int) -> int:
        ans = int(sqrt((n * n + n) / 2))
        return ans if ans * ans == (n * n + n) / 2 else -1

同步发文于CSDN,原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/131391141


http://www.niftyadmin.cn/n/468491.html

相关文章

PostgreSQL修炼之道之数据库优化(十八)

12.1 数据库优化准则和方法 12.1.1 数据库优化准则 数据库优化的思路有很多种。比较常用的是下面两种优化思路。 第一种思路&#xff1a;有人说过&#xff0c;“The fastest way to do something is dont do it”&#xff0c;意思是说&#xff0c;“做得最快的方法就是不做”…

FreeRTOS 队列

1. 简介 1.1 FreeRTOS 中所有的通信与同步机制都是基于队列实现的

中学生台灯怎么选比较好?精选真正适合中学生的台灯!

现在孩子的近视率很高&#xff0c;尤其是儿童青少年居多&#xff0c;从上了小学开始作业就变多了&#xff0c;经常挑起夜灯学习的&#xff0c;而中学生负担则更重。家长重视教育质量的同时也要注意孩子学习时的光线适合学习吗&#xff1f;用眼过度和不适合的光源容易导致近视&a…

Mysql数据库亿级数据的备份导出和导入

备份、导出和导入MySQL数据库&#xff0c;是MySQL管理员日常工作之一&#xff0c;也是保障系统数据安全的重要措施&#xff0c;尤其对于亿级数据来说&#xff0c;备份导出和导入工作更加繁琐而又必不可少。本文将对备份、导出、导入分别进行详细介绍。 一、备份MySQL数据库亿级…

如何评价论文的创新

摘要: 创新性是论文的核心. 本贴描述论文创新的几种评价视角, 并举例说明. 1. 问题与方法的视角 这是最常见的视角. 1.1 老问题老方法 在某些领域, 能想到的方法几乎都想到了, 所以人们写论文的时候, 会写成如下形式: 例 1. GoogleNet在基于示功图故障诊断中的应用——以大…

ios跟随系统设置字体大小

extension UILabel {func applyGlobalTextStyle() {let font self.font ?? UIFont.preferredFont(forTextStyle: .body)let fontMetrics UIFontMetrics(forTextStyle: .body)let scaledFont fontMetrics.scaledFont(for: font)self.font scaledFontself.adjustsFontForCo…

考虑储能的电价套利收益模型研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

超详细!完整版!基于spring对外开放接口的签名认证方案(拦截器方式)

文章目录 1、场景2、接口防御措施3、签名认证逻辑4、签名算法规则5、代码示例1、sign工具类2、定义拦截器3、生成accessKey、secretKey 工具类4、signInterceptor类5、SignInterceptor 获取body里参数后&#xff0c;接口的controller会获取不到body的参数了&#xff0c;会报错 …