最全蓝桥杯 真题演练(一)卡片 货物摆放 python(1),京东ui面试

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

cnt -= n # 减去凑齐这个数字需要用到1的个数

num += 1 # 凑齐这个数字后就要+1

else: # 否则就是凑不齐,凑不齐直接结束

break

print(num)


货物摆放

===================================================================

在这里插入图片描述

题目出的那么长,都能迷惑掉一大片考生了… 真正有用的就是 n = L x W x H 这个等式。 再结合一下例子可以知道因子的排列位置不同,就能产生不同的结果。

先说一下我做这题的思路。当时见到这道题我就想:“诶,这么大的数不会让我们在这里找吧?肯定有其他办法。”,想啊想,这么大的数前后一样,那肯定跟1有关,我一匹配一下,发现了。2021041820210418不就等于20210418 x 100000001 吗?然后我让100000001 分别除以1~9,发现都不是他的因子,脑袋一热就认定他是素数了,当时我就窃喜起来:“这道题能难得倒我?” 既然10000001是素数,那么它一定在长宽高的一个,只要找另外两个位置能够凑到20210418就OK了。因为20210418不大,我就用for找他的约数,最后匹配。等到对答案的时候却发现自己错了,怪不好意思的,还是太小看蓝桥杯了,呜呜呜,还得加把劲才行啊!!

分享完我的遭遇后现在就来锊一下题目的思路。解决这道题最先想到也是最容易想到的是暴力解法,通过三层遍历找到所有因子相乘之和能够等于2021041820210418 的三个数。但是种做法是不现实的,数那么大也许要跑到比赛结束才出结果,因此我们需要对这个解法进行一下优化。

我们可以先求出 2021041820210418 所有约数,然后让这些约数相乘看他们的的乘积是否与 2021041820210418 值相等,若相等,解决方案数+1。

可能有同学不懂为什么要先求出所有约数,然后再来求积呢?因为求积也是一项大工程,在茫茫数字中,约数只占极少数部分,其他数都是不相干的,这些不相干的数相乘之和也必然不是目标值,如果参与运算的话会产生大量无价值结果,因此,先求约数再来计算会比暴力解法效率高些。

得到约数后,我的方法是直接使用三层for循环列举它所有排列组合,然后匹配得出结果,但这么做的话挺暴力的。

重识暴力解法


在这里我说一下我对暴力解法的个人理解,希望大家不要对暴力解法有任何偏见。暴力解法固然不好,时间空间上都造成极大的浪费,缺点多多,但多少还是有个优点的,它的优点就是我们比较容易想到。在竞赛的填空题中我们不妨试一下,等个8~10秒又如何?只要不超过30秒都是可以接受的。也许你花15分钟设计的优化代码能够在15ms内得出结果,而花10分钟写的暴力解法需要在10000ms之后才能得出结果,那又如何?总体花费的时间或许暴力解法会少一些。因此我建议,在填空题中如果思考三五分钟还是没有得出理想的算法来解决题目的话,就试试稍微优化的暴力解法来解决。

下面我们看一下代码实现:

divisor = [] # 存放约数的列表

n = 2021041820210418 # 目标值

for i in range(1,int(n ** 0.5)+1): # 求约数在目标值的1/2次方范围内求取即可

if n % i == 0: # 如果可以整除

divisor.append(i) # 将其存入到约数列表中

div = int(n / i)

if div != i: # 如果目标除数的另一半不是他本身,也将其存入到约数列表中

divisor.append(div)

print(divisor)

cnt = 0 # 计算 三个因子乘积等于目标值的方案总数

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值