当前位置: 首页 > 后端技术 > Python

面试宝典:Python经典算法面试题实例解析

时间:2023-03-26 18:09:40 Python

五人分鱼1.问题A、B、C、D、E五个人一起打了一晚上鱼,最后累得分头睡觉。第二天A先起床,他把鱼分成5份,多出来的扔掉,自己拿走。B第二次醒来,同样把鱼分成5份,多出来的扔掉,拿走自己的一份。然后C、D、E依次醒来,以同样的方式分鱼,问他们至少钓到了几条鱼?2.用穷举法解决问题。假设有x条鱼,那么x-1可以除以5;剩余鱼的数量为((x-1)/5)*4,也满足前面的条件。python代码如下:deffish():"""五人分享鱼"""fish=1whileTrue:total=fishenough=Truefor_inrange(5):if(total-1)%5==0:total=(total-1)//5*4else:enough=Falsebreakifenough:print(fish)breakfish+=1归并排序排序思路:将一个数组分成两个数组,然后分开将每个数组平均分为两个数组,直到每个数组中只有一个元素;然后将这两个数组排序并合并成一个有序数组,直到最后合并完成。python代码如下:defmerge_sort(arr):"""合并/分治排序"""iflen(arr)<2:returnarr[:]mid=len(arr)//2left=merge_sort(arr[:mid])right=merge_sort(arr[mid:])returnmerge(left,right)defmerge(left,right):print(left)print(right)print('\n')结果=[]index_left,index_right=0,0whileindex_leftitems[j+1]:items[j],items[j+1]=items[j+1],items[j]返回items源网络,仅出于学习目的,侵删。学习Python的路上肯定会遇到困难,不要慌张,我这里有一套学习资料,包括40+电子书,800+教学视频,涉及Python基础、爬虫、框架、数据分析、机学习等等,别怕你学不会!https://shimo.im/docs/JWCghr8...《Python学习资料》关注公众号【蟒圈】,每日优质文章推送。