python判断能否形成等差数列

C语言判断给定整数序列是否构成等差数列 判断给定整数序列能够构成等差序列。有多组数据,每组输入数据由两行构成,第一行只有一个整数n(<1000),表示序列(即序列中整数的个数,0表示输入结束),第二行为n个整数,每个整数的均为int类型。 阅读详情

|判断能否形成等差数列

给你一个数字数组 arr 。

如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。

如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。

 

示例 1:

输入:arr = [3,5,1]
输出:true
解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,
可以形成等差数列。
示例 2:

输入:arr = [1,2,4]
输出:false
解释:无法通过重新排序得到等差数列。
 

提示:

2 <= arr.length <= 1000
-10^6 <= arr[i] <= 10^6

题解


class Solution:
    """
    解题思路: 
    1.先排序,再判断是否为等差数列
        1.直接使用sort 函数
    """
    def canMakeArithmeticProgression(self, arr: List[int]) -> bool:
        length = len(arr)
        if length <= 2:
            return True

        arr.sort()

        return all([arr[i] - arr[i-1] == arr[-1] - arr[-2] for i in range(length-1, 0, -1)])


class Solution:
    """
    解题思路: 
    1.先排序,再判断是否为等差数列
        2.手动实现快排
    """
    def canMakeArithmeticProgression(self, arr: List[int]) -> bool:
        length = len(arr)
        if length <= 2:
            return True
        self.quick_sort(arr, 0, length-1)
        
        return all([arr[i] - arr[i-1] == arr[-1] - arr[-2] for i in range(length-1, 0, -1)])


    def quick_sort(self, arr, first, last):
        # 初始化p, q指针
        if first >= last:
            return
        p, q = first, last

        while q > p:
            if arr[p] < arr[first]:
                p += 1
            elif arr[q] >= arr[first]:
                q -= 1
            else:
                arr[p], arr[q] = arr[q], arr[p]
        arr[q] = arr[first]

        # 对比左侧元素
        self.quick_sort(arr, first, q-1)
        self.quick_sort(arr, q+1, last)
8种Python异常检测算法总结 异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据,也被称为离群点、异常值检测等等。 阅读详情

相关推荐

Python判断能否形成等差数列:从算法到工程实践

在数据处理和算法设计中,判断一组数值能否通过重排形成等差数列是一个基础但关键的问题。其原理基于排序后相邻差值恒定,或利用最大值与最小值之差除以元素个数减一得到公差。这一技术能有效校验数据梯度均匀性,提升系统可靠性。常见应用包括教育题库难度校验、排班系统时间间隔判断、游戏关卡难度曲线设计等。Python凭借其简洁的语法和高效的排序函数,成为实现此类判断的理想工具。本文深入探讨了Python中判断等差数列的完整解法,涵盖排序、去重、公差计算及边界情况处理,并提供了生产级代码实现。

weixin_32306957的博客 206

python判断等差数列

import sys n = int(sys.stdin.readline().strip()) s = sys.stdin.readline() s = list(map(int, s.split(' '))) print(n) print(s) for i in range(len(s)-1): for j in range(i+1, len(s))...

weixin_38169722的博客 2570

【高等数值分析】Krylov子空间方法

文章目录1. 预备理论1.1 Krylov 子空间1.2 最佳逼近1.2.1 方法一:最佳平方逼近1.2.2 方法二:假设 AAA 对称正定1.2.3 方法三:残差2范数2. 基底正交化2.1 Arnoldi 过程(CGS)2.2 改进 Arnoldi 过程(MGS)2.3 Lanczos过程3. 方程组求解3.1 全正交方法 (FOM)3.2 D-Lanczos方法3.3 广义极小残量法(GMRES)3.4 MINRES 方法 1. 预备理论 现在需要求解一个大规模稀疏方程组 Ax=bAx=bAx=b,可

Glooow的博客 1万+

【蓝桥杯】【Python】等差数列

题目描述 数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中NN个整数。 现在给出这 NN 个整数,小明想知道包含这 NN 个整数的最短的等差数列有几项? 输入描述 输入的第一行包含一个整数 N。 第二行包含 N 个整数。(注意 :​ 并不一定是按等差数列中的顺序给出) 输出描述 输出一个整数表示答案。 输入输出样例 示例 输入 5 2 6 4 10 20 输出 10 样例说明: 包含 2、6、4、10、20 的最短..

yewanyuan的博客 1732

阿里云天池大数据长期赛:金融风控-贷款违约预测(含代码)

本次比赛让自己在大数据的处理流程上有了更明确的认知,从数据清洗、特征工程、数据建模,每一个过程都能学到很多经验和知识,值得去历练。

weixin_46685991的博客 1万+

关于并网继电器的继电器自检逻辑及实现方式

对于常规的光伏并网逆变器来说,继电器控制至关重要。继电器一般位于逆变电感后,共模电感前,用于将逆变电压与电网电压脱开,一般国外有双继电器的安规强制认证要求,国内目前只需要单继电器要求(后续应该会有双继电器要求,个人感觉)

weixin_29982209的博客 2615

力扣leecode-python解法笔记之1502. 判断能否形成等差数列

模拟过程的思路,简单题。二刷思路更清晰。

weixin_42735060的博客 670

思科路由器IPv6各种路由协议配置

思科路由器IPv6路由协议配置:1、静态路由配置;2、默认路由配置;3、RIPng路由配置;4、OSPFv3路由配置。

weixin_41687096的博客 6544

python-leetcode-1502. 判断能否形成等差数列

这个问题的关键在于判断数组是否能被重新排列成一个。

Lucy_wzw的博客 284

使用Python开发TreeATE的测试脚本常见问题

ImportError: No module named py_compile 找不到 DevLangPython3.dll 以上2个问题都是没有安装正确的Python,当前TreeATE依赖32位Python 2.7版本,暂时不支持Python 3以上版本

蓝白云的专栏 1033

为YOLOv11引入加权双向特征金字塔(BiFPN)

本文介绍了将BiFPN应用于YOLOv11模型以提升边缘设备上小目标检测精度的实践。针对传统FPN在特征融合时的信息丢失问题,采用带可学习权重的BiFPN结构进行改造,实现了不同层级特征的动态融合。重点阐述了WeightedFeatureFusion模块的实现细节、neck结构改造方法及训练部署注意事项。实验表明,该改进使小目标AP提升3.1%,参数量仅增加5%,在精度和效率间取得良好平衡。文章还分享了权重初始化、归一化处理等实用技巧,并强调需根据数据特性评估改进效果,重新计算anchor等关键点。

as1225120794的博客 349

判断能否形成等差数列(python)

1502.判断能否形成等差数列 给你一个数字数组arr 。 如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为等差数列 。 如果可以重新排列数组形成等差数列,请返回true ;否则,返回false 。 示例1: 输入:arr = [3, 5, 1] 输出:true 解释:对数组重新排序得到[1, 3, 5]或者[5, 3, 1] ,任意相邻两项的差分别为2或 - 2 ,可以形成等差数列。 示例2: 输入:arr = [1, 2, 4] 输出:false 解释:无法通过重新排序得到等差数列。

playboygogogo的博客 2321

飞行机械臂设计

其后对飞行机械臂系统的机 理模型和基于 ADAMS 的物理模型进行了控制系统的搭建,对于机理模 型,设计了三个输入通道,分别是俯仰力矩,翻滚力矩与偏航力矩,控 制量为翻滚角,俯仰角,偏航角。四旋翼无人机自身具有独特的优势,在无人机上增加机械臂,整个 机体系统相当于一架空中行动自如的空中机器人,可以适应更多的应用场合,能够实现空中抓取,运输载荷,巡航监视等任务。的函数模块如图 4-8 所示,可见输入为 U1,U2,U3,U4,分别对应总力矩,俯仰力矩,翻滚力矩,偏航力矩,控制 量为俯仰角,翻滚角,偏航角。

coldmood77的博客 2916

leetcode:1502. 判断能否形成等差数列(python3解法)

leetcode:1502. 判断能否形成等差数列(python3解法)

qq_41905051的博客 357

基于 STM32 的智能水表流量计设计与实现 —— 数据采集与远程传输

本文设计的基于 STM32 的智能水表流量计通过霍尔传感器实现流量采集,结合 STM32 的处理能力完成数据计算、存储与远程传输,具备计量精准、功耗低、可远程监控等特点。未来可优化方向:引入低功耗模式延长电池寿命,增加水质检测模块实现多参数监测,提升水务管理智能化水平。

weixin_42300449的博客 1028

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LeetCode 1502[Python] 判断能否形成等差数列.

LeetCode 1502[Python] 判断能否形成等差数列.1).题目描述2).解题思路&代码 1).题目描述 给你一个数字数组 arr 。 如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。 如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。 示例 1: 输入:arr = [3,5,1] 输出:true 解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。 示

qq_41986842的博客 490

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LeetCode:1502. 判断能否形成等差数列(python3,javascript)

1502. 判断能否形成等差数列 class Solution: def canMakeArithmeticProgression(self, arr: List[int]) -> bool: #法1先排序 # arr.sort() # flag = arr[1]-arr[0] # for i in range(len(arr)-1): # print(arr[i],arr[i+1],flag)

qq_43710889的博客 742

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LeetCode题解(1502):判断能否形成等差数列(Python)

题目:原题链接(简单) 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(NlogN)O(NlogN)O(NlogN) O(N)O(N)O(N) 44ms (100.00%) Ans 2 (Python) Ans 3 (Python) LeetCode的Python执行用时随缘,只要时间复杂度没有明显差异,执行用时一般都在同一个量级,仅作参考意义。 解法一(排序法): [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(i

长行 787

1502. 判断能否形成等差数列(LeetCode-力扣-Python)

【代码】1502. 判断能否形成等差数列(LeetCode-力扣-Python)

zy20221209的博客 394

LeetCode简单题之判断能否形成等差数列

题目 给你一个数字数组 arr 。 如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。 如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。 示例 1: 输入:arr = [3,5,1] 输出:true 解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。 示例 2: 输入:arr = [1,2,4] 输出:false 解释:无法通过重新排序得到等差数列。 提示: 2 <

Lonery的博客 187

python-Leetcode「基础编程能力50题」喂饭题解:283、66、1502、896、13

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]

susie0815的博客 832

Python学习——LeetCode刷题(三)

对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。通常情况下,罗马数字中小的数字在大的数字的右边。数组中所有值的乘积是 144 ,且 signFunc(144) = 1。数组中所有值的乘积是 -1 ,且 signFunc(-1) = -1。数组中所有值的乘积是 0 ,且 signFunc(0) = 0。数组所表示的非负整数,在该数的基础上加一。

2301_78765406的博客 1016

1630 等差子数组(暴力破解)

1. 问题描述: 如果一个数列由至少两个元素组成,且每两个连续元素之间的差值都相同,那么这个序列就是等差数列 。更正式地,数列 s 是等差数列,只需要满足:对于每个有效的 i , s[i+1] - s[i] == s[1] - s[0] 都成立。 例如,下面这些都是 等差数列 : 1, 3, 5, 7, 9 7, 7, 7, 7 3, -1, -5, -9 下面的数列不是等差数列: 1, 1, 2, 5, 7 给你一个由 n 个整数组成的数组 nums,和两个由 m 个整数组成的数组 l 和 r.

二哈 289

力扣——编程基础1502. 判断能否形成等差数列

给你一个数字数组 arr。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列。如果可以重新排列数组形成等差数列,请返回 true;否则,返回 false。

m0_56222212的博客 273

LeetCode刷题一:66,1822,1502

LeetCode刷题一:66,1822,1502

m0_62238141的博客 108

LeetCode--1502--判断能否形成等差数列

题目描述: 给你一个数字数组 arr 。 如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。 如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。 输入: arr = [3,5,1] arr = [1,2,4] 输出: true false 题意: 题目描述 题解: 排个序,然后按照等差数列的定义判断 代码: class Solution { public boolean canMakeArithmeticProgression(int[]

猩猩是个好程序员的博客 333
上一篇: python 有效的字母异位词
下一篇: python 合并区间
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶知秋的BLOG

创作不易 请多多关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值