使用递归方法对一个数组求最大值和最小值

"""用递归算法求解一个数组的最大值和最小值

思路:

1、首先假设这个列表只有1个元素或两个元素

2、再考虑超过两个元素的情况,将该列表从中间位置一分为二

3、然后递归调用该函数"""

defmyMaxMin(L,start,end):'''递归来得到数组的最大值和最小值'''

if end - start <= 1:#基准点的情况

return(max(L[start],L[end]),min(L[start],L[end]))else:

max1, min1= myMaxMin(L,start,(start+end)//2)#求前半部分的

max2, min2 = myMaxMin(L,(start+end)//2+1,end)#求后半部分的

returnmax(max1,max2),min(min1,min2)defmaxMin(L):assert(type(L) == type([]) and len(L) >0)

maxV, minV= myMaxMin(L,0,len(L)-1)print(maxV,minV)returnmaxV, minV

L= [1,3,5,6,7,8,5,7,8,-9]assert(maxMin(L) == (8,-9))

使用递归的方法求出10个球的颜色可能性打印出来(颜色只有黑、白两种)

'''有10个球,每个球有两种颜色选择,黑与白,使用递归的方法把这10个球的颜色可能性打印出来

1、将这10个球放入到一个列表中,全部用0表示,0表示白,1表示黑

2、找基准点(程序结束的条件)start = end,打印结果'''count=0defperm(L,start,end):if start == end:#基准点,表示已经给每个球都赋值了一个颜色

print(L)globalcount

count+= 1

else:

perm(L,start+1,end)

L[start]= (L[start]+1)%2#实现1与0的互换

perm(L,start+1,end)

L=[0,0,0,0,0,0,0,0,0,0]

res=perm(L,0,len(L))print(count)#1024,2**10

使用两个栈实现一个队列

'''使用两个栈实现一个队列

队列:a,b,c -->c,b,a'''

classQueueWithStacks:def __init__(self):

self.s1=[]

self.s2=[]defpush(self,e):

self.s1.append(e)defpop(self):if len(self.s2) ==0:while len(self.s1) >0:

t=self.s1.pop()

self.s2.append(t)assert len(self.s2) > 0,'队列已经为空'#此时说明队列没有元素

returnself.s2.pop()

q=QueueWithStacks()

q.push('a')

q.push('b')

q.push('c')print(q.pop())print(q.pop())print(q.pop())print(q.pop())#AssertionError: 队列已经为空

实现单例模式

classSingleton:__instance =None

@classmethoddefget_instance(cls):if cls.__instance:return cls.__instance

else:

cls.__instance =Singleton()return cls.__instanceobj1=Singleton.get_instance()print(obj1) #<__main__.Singleton object at 0x7eff2ce22b70>

obj2 =Singleton.get_instance()print(obj2) #<__main__.Singleton object at 0x7eff2ce22b70>

classSingleton(object):def __new__(cls, *args, **kwargs):if not hasattr(cls,'_instance'):

cls._instance= super(Singleton,cls).__new__(cls)returncls._instance

s1=Singleton()

s2=Singleton()print(s1 == s2) # True

闭包

deffoo():return [lambda x: i+x for i in range(4)]print([x(3) for x infoo()])#将上面的程序改写,以便更好的理解

deffoo():

function_list=[]for i in range(4):

function_list+= [lambda x: i+x]return function_list #返回一个存有四个函数的列表

#x其实就是表示x=lambda x: i+x,所以x(3)就表示lambda 3: i+3,只不过此处用到了闭包的概念:i是foo函数的局部变量,x是foo的内嵌函数#内嵌函数引用外部函数的变量i,当foo函数执行完毕返回一个函数列表时,i的值已经是3了,所以当x函数中的i就是3,所以结果就是[3+3,3+3,3+3,3+3]

print([x(3) for x in foo()])

编译一个目录,找出该目录下的所有文件

importos

file_list=[]deftraversal_directory(dir):for child inos.listdir(dir):

parent_child=os.path.join(dir, child)ifos.path.isdir(parent_child):

traversal_directory(parent_child)else:

file_list.append(parent_child)returnfile_listif __name__ == "__main__":for file in traversal_directory("slideshow"):print(file)

is与==的区别

"""==符号判断的是字面值

is判断的是对象的地址

==符号为True则用is判断也必定为True

is判断为True时用==符号判断未必是True"""

classA:

@staticmethoddef __eq__(var):returnTrueif __name__ == "__main__":print(A() == 1) # Trueprint(A() is 1) # Falseprint("A()的id",id(A()))print("1的id",id(1))

python与C语言在运行效率上哪个更快,并编写代码验证

求第45个斐波那契数

importtimedeffun(n):if n <= 2:return 1

return fun(n-1) + fun(n-2)

start=time.time()

res= fun(45)

end=time.time()

tm= end -startprint(tm) # 287.7714354991913,大约5分钟print(res)

#include #include#include //导入sleep函数

long fib(intn){if(n <= 2){return 1;

}else{return fib(n-1) + fib(n-2);

}

}intmain(){

unsignedlong start = time(0);long res = fib(45);

unsignedlong end = time(0);double time = end -start;

printf("time:%f\n",time); //大约5秒钟

printf("res:%ld\n", res);return 0;

}

python笔试编程题_python_编程面试题相关推荐

  1. python期末考试编程题_Python_编程题期末必看

    #NO1_4‐3 # 计算 1^2‐2^2+3^2‐4^2+...+97^2‐98^2+99^2 . s = 0 flag = 1 for i in range ( 1 , 100 ): s = s ...

  2. python笔试110题(Interview questions)

    python笔试110题–详解 一行代码实现1-100之和 解: print(sum(range(1, 101))) 如何在一个函数内部修改全局变量 解: 1)函数内部用global声明,global ...

  3. java在线编程题_阿里笔试题(2017在线编程题)-- 数串分组 --Java实现

    看到有人写了阿里的面试题,心里痒痒,好久 没搞过这些了,写着实现一下 题目 2017年3月阿里在线编程题(实习内推) 给定一串数字 判断是否存在这三个元素,它们将数字串分为四个子串,其中每个子串的数字 ...

  4. java 字符串编程题_Java编程题——在一个字符串中查找第一个非重复的字符

    编写一个Java程序来查找一个字符串中第一个非重复的字符,这是在编程测试中很常见的一个问题,因为字符串处理在程序员面试中是一个普遍的话题.面试前最好是准备好一些熟知的编程问题,例如使用递归反转字符串, ...

  5. 美团2021校招笔试-编程题(通用编程试题,第9场)

    第一题题目没看懂 团的蛋糕铺长期霸占着美团APP中"蛋糕奶茶"栏目的首位,因此总会吸引各路食客前来探店. 小团一天最多可以烤n个蛋糕,每个蛋糕有一个正整数的重量. 早上,糕点铺已经 ...

  6. 美团2021校招笔试-编程题(通用编程试题,第10场)

    import java.util.*;public class Main{public static void main(String[] args) {Scanner sc = new Scanne ...

  7. 美团2021校招笔试-编程题(通用编程试题,第1场)2. 小美的评分计算器

    美团对于商家的评价体系是1-5星评价体系,用户在完成订单之后可以对商家打1/2/3/4/5星,而在客户端上,商家的评级却不一定是整数,而是会显示小数点后的一位.很显然这就需要一个计算器了,小美拥有了一 ...

  8. 美团2021校招笔试-编程题(通用编程试题,第1场)1. 小美的送花线路

    小美是美团的一名鲜花快递员,鲜花是一种保质期非常短的商品,所以需要尽快送到客户手中,公司对于骑手的一个要求就是要规划送花的线路,使得骑手送完所有订单走的路程尽可能少.(骑手开始派送时带走了所有需要派送 ...

  9. 机器人 c语言编程题,机器人机器人小高试题模拟题

    "小小科学家"广东省第五届少年儿童科学教育体验活动 小机器人竞赛模拟试题 小学高年级组个人赛 参赛编号 ______ 学校:_________ 班级:_____ 姓 ...

最新文章

  1. VS Code(Visual Studio Code)编辑器的常用设置
  2. 伪元素:placeholder-shown:focus-within
  3. 多方安全计算:隐私保护集合求交技术
  4. 有凤来仪的意思是什么?成语有凤来仪比喻什么?
  5. 安装 Maxwell
  6. 娱乐视频直播背后的技术支持——DASH重构
  7. 数据库实验-- 更新语句
  8. 利用F12下载网页高清图像
  9. 服务器2008 ftp配置文件,win2008 r2服务器ftp配置
  10. 派生类的构造函数xu(c++)
  11. 智汇云校携手院校组织数千学生参加“2020华为中国大学生ICT大赛”
  12. 一款好的软件,软件测试必不可少...
  13. 电阻、二极管、三极管搭出的逻辑电路
  14. 微软春天发布活动将聚焦在Windows 10云版
  15. Java验证码(图片、字符串)生成工具
  16. 员工逼我加薪,不加就走人,怎么办?
  17. 超火的ChatGPT技术原理与我们关系
  18. 计算机如何安装cpu风扇,cpu风扇安装,小编教你cpu风扇怎么安装
  19. 去掉visual studio code样式中的references
  20. python图片转化pdf

热门文章

  1. 统计学习方法第十章作业:HMM模型—概率计算问题、Baum-Welch学习算法、维特比预测算法 代码实现
  2. 对Javascript 类、原型链、继承的理解
  3. 云栖科技评论第53期:前沿技术要“会说话”
  4. dedecms的自定义模块
  5. Android自动化测试-从入门到入门(5)AdapterView的测试
  6. 【算法学习笔记】83.排序辅助 动态规划 SJTU OJ 1282 修路
  7. 使内嵌式jetty服务器支持jsp
  8. c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)(二)
  9. 关于Exchang server 2010 MCITP
  10. Open Asset Import Library