LeetCode——找出中枢整数

news2024/10/5 13:09:20

一、题目

2485. 找出中枢整数 - 力扣(Leetcode)

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

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

返回中枢整数 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

二、题目解读

中枢整数 x :

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

我们可以直接算出1到n的总和 sum=(1+n)*n/2,然后遍历1到x计算总和s=(1+x)*x/2,并与sum比较大小

sum-s==s  推出 √(sum)==s

也就是说我们可以直接计算sum开根号是否为整数来进行判断中枢整数 x 的存在

三、代码

java

Ⅰ、

class Solution {
    public int pivotInteger(int n) {
        int sum=(n+1)*n/2;
        int s=0;
        for (int i=1;i<=n;i++){
            s+=i;
            if (s==sum){
                return i;
            }else if (s>sum)
                return -1;
            sum-=i;
        }
        return -1;
        }
}

Ⅱ、

class Solution {
    public int pivotInteger(int n) {
        int sum=(n+1)*n/2;
        int x=(int) Math.sqrt(sum);
        return x*x==sum?x:-1;
        }
}
Python

Ⅰ、

class Solution(object):
    def pivotInteger(self, n):
        Sum = n * (n + 1) / 2
        s = 0
        for i in range(n + 1):
            s += i
            if s == Sum:
                return i
            Sum -= i
        return -1

Ⅱ、

class Solution(object):
    def pivotInteger(self, n):
        s = (n * n + n) // 2
        x = int(s ** 0.5)
        if x * x == s:
            return x
        return -1

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/704898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

统一移动门户对政企级办公来说有哪些优势?

政府机构和企业在数字化转型后&#xff0c;内部常使用多套不同的信息系统和应用程序。然而&#xff0c;这些系统和应用之间存在信息和数据隔离的问题&#xff0c;导致内部员工需要频繁切换登录&#xff0c;并容易出现信息遗漏和处理延误。这不仅妨碍了工作效率的提升&#xff0…

QML Canvas 裁剪

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 QML 开发中,Canvas 是一个很强大的绘图元素,可以实现各种复杂的图形效果,其中一个重要的特性就是裁剪。它的原理是使用路径或其他形状定义一个封闭区域,将绘图操作限制在该区域内,并隐藏掉超出该区域…

[k8s] arm64架构下k8s部署的坑

本次测试在华为kunpeng-920机器上&#xff0c;cpu配置如下&#xff1a; [rootmaster ~]# lscpu 架构&#xff1a; aarch64 CPU 运行模式&#xff1a; 64-bit 字节序&#xff1a; Little Endian CPU: …

软考--操作系统之文件系统多级索引

目录 概念索引结构索引表索引方式一级索引多级索引 真题分析题目1-存储文件最大长度解析题目2-多级索引占用物理块号解析题目3-综合解析总结 概念 索引结构 一个文件的信息存放在若干不连续物理块中 系统为每个文件建立一个专用数据结构——索引表&#xff0c;并将这些物理块…

快速部署K8s仪表板,助力管理轻松搞定!

https://kubernetes.io/zh-cn/docs/tasks/access-application-cluster/web-ui-dashboard/ Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中&#xff0c;也可以对容器应用排错&#xff0c;还能管理集群资源。 你可以使…

【运维工程师学习三】Linux中Shell脚本编写

【运维工程师学习三】shell编程 Shell程序分类1、系统中sh命令是bash的软链接2、Shell脚本标准格式之文件后缀3、Shell脚本标准格式之文件内容首行4、Shell脚本的运行方法一、作为可执行程序解释 二、作为解释器&#xff08;bash&#xff09;参数 5、find、grep、xargs、sort、…

C++ 中的字符串类

历史遗留问题 C 语言不支持真正意义上的字符串 C 语言用字符数组和一组函数实现字符串操作 C 语言不支持自定义类型&#xff0c;因此无法获得字符串类型 解决方案 从 C 到 C 的进化过程引入了自定义类型 在 C 中可以通过类完成字符串类型的定义 问题&#xff1a; C 中的…

华为云CodeArts实践初体验活动即将结束,抓紧报名,赢华为耳机!

【活动简介】 CodeArts是华为自研一站式软件开发生产线&#xff0c;软件开发全流程覆盖&#xff1a;支持需求管理、代码托管、流水线、代码检查、编译构建、部署、测试、制品仓库等全生命周期软件开发服务&#xff1b;开箱即用&#xff0c;云上开发。本次实践体验活动带你初步…

项目——学生信息管理系统4

目录 学生模块的功能实现 1. 创建Student实体类型 编写StudentDao 提供添加学生的方法 创建 学生添加页面 创建 AddStudentFrm 页面 注意创建成JInternalFrame类型 注意&#xff1a;把main方法注释掉 回到 MainFrm.java 页面 给添加学生按钮绑定事件 当打开 AddStudentF…

从裸机启动开始运行一个C++程序(五)

先序文章请看 从裸机启动开始运行一个C程序&#xff08;四&#xff09; 从裸机启动开始运行一个C程序&#xff08;三&#xff09; 从裸机启动开始运行一个C程序&#xff08;二&#xff09; 从裸机启动开始运行一个C程序&#xff08;一&#xff09; 把MBR和内核源码拆开 拆分M…

实现表格合并单元格、在表格做输入处理以及数值统计

需求&#xff1a;表格样式涉及到合并单元格&#xff0c;功能上可以在表格最后一列输入分数&#xff0c;并自动统计总分。 大体样式 代码&#xff1a; 表格&#xff1a; :span-method 属性用来合并单元格 :summary-method 属性用来实现自动统计 // 合并单元格操作 objectSpa…

头文件的使用,什么是头文件?

*## 头文件的使用*为什么要加这个#include include表示包含的意思&#xff0c;就是把iostream这个文件拷贝到main.c这里 有什么意义呢&#xff1f; 有什么意义呢&#xff1f;都是明星同时也是小卡 所以需要包含头文件去查找一下 所以头文件就是相对应功能函数的集合。要想使用…

java实现布隆过滤器(手写和Guava库提供的)

目录 前言 布隆过滤器的原理 插入​编辑 查询 删除 布隆过滤器优缺点 优点&#xff1a; 缺点&#xff1a; 代码实现 方式一&#xff1a; Google Guava 提供的 BloomFilter 类来实现布隆过滤器 到底经过几次哈希计算 解决缓存穿透 方式二&#xff1a;手写 前言 在学…

基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

Git:git merge和git rebase的区别

分支合并 git merge是用来合并两个分支的。比如&#xff1a;将 b 分支合并到当前分支。同样git rebase b&#xff0c;也是把 b 分支合并到当前分支。他们的 「原理」如下&#xff1a; 假设你现在基于远程分支"origin"&#xff0c;创建一个叫"mywork"的分支…

【爬虫】对某某贴吧主页的爬虫分析+源码

1. 网站分析 想要的内容有标题、时间和帖子跳转链接 查看网站源代码&#xff0c;发现想要的内容就在里面&#xff0c;那就好办了&#xff0c;直接上正则&#xff0c;当然beautifulsoup也不是不可以 2. Python源码 import requests import re from prettytable import PrettyTa…

“生鲜蔬”APP的设计与实现

1.引言 在这个科技与网络齐头并进的时代&#xff0c;外卖服务正在飞速发展&#xff0c;人们对外卖APP系统功能需求越来越多&#xff0c;开发APP的人员对自己的要求也要越来越高&#xff0c;要从所做APP外卖系统所实现的功能和用户的需求来对系统进行设计&#xff0c;还需要与当…

基于SpringBoot+vue的人职匹配推荐系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

CC1310 CC1310F128RSMR 超低功耗SUB-1GHz 无线 MCU芯片

1 器件概述 1 1 特性 • 微控制器 – 性能强大的 Arm Cortex -M3 处理器 – EEMBCCoreMark评分&#xff1a;142 – EEMBC ULPBench™评分&#xff1a;158 – 时钟速率最高可达 48MHz – 32KB、64KB 和 128KB 系统内可编程闪存 – 8KB 缓存静态随机存取存储器 (SRAM) &#xff…

农业副业产品求购供应发布市场行情VIP会员公众号小程序开源版开发

农业副业产品求购供应发布市场行情VIP会员公众号小程序开源版开发 后台一键同步全国近200家农产品批发市场商品包括&#xff0c;蔬菜、水果、水产、粮油和农副产品等的价格。 前端VIP权益功能&#xff0c;开通VIP会员后&#xff0c;可以开启VIP会员标识。可无限制查看全国市场…