Python习题:Python 判断是不是等差数列,要求算法时间复杂度为O(NlogN)
来源:互联网 发布:佛山网络推广方法 编辑:程序博客网 时间:2024/05/19 04:02
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)//(N-1)print(d1)#第一步,判断是否存在公差d1if d1*(N-1) != (max1-min1):#判断是否整除,验证是否存在公差d1 print('不存在公差d1,不是等差数列')#第二步,判断公差是否为0elif d1==0:#如果d1为0,则也是等差数列,但是d1不能作为被除数 print('数列元素相同,是等差数列')else: B=[0]*N for i in A: j=(i-min1)//d1 if d1 * j != (i-min1):#判断是否整除,即任意数之差是否是公差的整数倍 print(False, '不是等差数列') break else: B[j]=1 print(B)#观察过程 if sum(B)==N: print(True,'是等差数列') else: print(False,'不是等差数列')
0 0
- Python习题:Python 判断是不是等差数列,要求算法时间复杂度为O(NlogN)
- 对链表排序 要求时间 复杂度为 O(nlogn) 空间复杂度为常量
- 关于快速排序和插入排序最坏时间复杂度为O(nlogn)的算法
- 实现时间复杂度为O(nlogn)的链表排序算法
- 算法习题49:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- LCS时间复杂度O(NlogN)
- 判断一个正整数是不是素数,时间复杂度为O(根号n)
- 算法复杂度O(nlogn)详解
- 算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn)
- Java-时间复杂度为O(nlogn)的排序算法(快速排序, 归并排序, 堆排序, 希尔排序)
- 有1,2...一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),时间复杂度为O(1)
- 排序一个数组要求时间复杂度为O(N)
- O(nlogn)时间复杂度 链表排序
- 快速排序[平均时间复杂度O(NlogN)]
- 快速排序算法的时间复杂度为什么是O(NlogN),还有O(N^2)
- HDU1257--最少拦截系统 (LIS时间复杂度O(n^2)与O(nlogn)两种算法)
- 《数据结构》2.10设计一个算法,删除顺序表中值为item的元素,要求算法的时间复杂度是O(n),空间复杂度是O(1)
- poj1330 LCA在线算法 复杂度O(nlogn)
- Spark学习笔记(五)
- Android建立远程动态库,提交到Jcenter
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】揭开Linux Proc文件系统的神秘面纱
- 为什么匿名内部类参数必须为final类型
- Java反射机制详解
- Python习题:Python 判断是不是等差数列,要求算法时间复杂度为O(NlogN)
- 突发性 java.lang.NoClassDefFoundError
- webview加载html标签有图片时,让图片自适应屏幕
- 9 Python迭代_for
- Socket编程
- iOS 实现webview不滚动,显示所有内容
- Windows下Maven的安装配置
- LDPC 码
- Java版,如果一个数字能表示为p^q(^表示幂运算)且p为一个素数,q为大于1的正整数就称这个数叫做超级素数幂。现在给出一个正整数n,如果n是一个超级素数幂需要找出对应的p,q