Python习题:Python 判断是不是等差数列,要求算法时间复杂度为O(NlogN) 知乎原帖: https://zhuanlan.zhihu.com/p/23134333#comments 评论中答案总结及测试正确的修改代码如下: 1. 验证成功,但是原理上不会证明 注意 python3中/为浮点数除法,返回浮点数,//为整数除法,返回整除结果
A=[
2,
3,
4]
N=len(A)
min1=min(A)
max1=max(A)
d1=(max1-min1)
print(d1)
if d1*(N-
1) != (max1-min1):
print(
'不存在公差d1,不是等差数列')
elif d1==
0:
print(
'数列元素相同,是等差数列')
else:
B=[
0]*N
for i in A:
j=(i-min1)
if d1 * j != (i-min1):
print(
False,
'不是等差数列')
break
else:
B[j]=
1
print(B)
if sum(B)==N:
print(
True,
'是等差数列')
else:
print(
False,
'不是等差数列')
转载请注明原文地址: https://ju.6miu.com/read-9598.html