这是菜鸟学Python的第74篇原创文章
阅读本文大概需要5分钟
我一个同事是算法大牛精通多门语言,编程狂人,一个MBP电脑几乎不离身。他主要刷两个网站的题,其中之一就是大名鼎鼎的LeetCode,他的记录很牛,这个网站我以前刷过,但是没有系统的刷过,受他的影响,于是我这几天手痒,空了先刷了几道,跟大家先分享一小部分,每一道题我都用2种以上的解法,我准备用一段时间,来完整的刷一下,并全部记录下来,看看我能到第几层~~
1.Remove Element
4 种解法
在一个数组里面移除指定的value,并返回新的数组的长度
Given an array and a value ,remove all instances of that value in place,and return the new length
两种解法:
4.有没有其他解法呢,有我们有高阶函数filter()
2.Remove Duplicates from Array (指定某个元素)
Given a array,remove the duplicates in place such that each element appear only once and return the new length
Do not allocate extra space for another array ,you must do this in place with constant memory
在一个排好序的数组里面删除重复的指定的元素
2种解法
3.Remove Duplicates from Sorted Array II
跟上面的题类似,但是不知道列表里面有多少个重复的元素
4种解法
思考题:
这道题还有2种解法,欢迎有兴趣的同学,大家留言交流
4.Remove Duplcateds from Array III
跟上一题类似,同样是移除重复的元素,但是加深了难度,可以允许最多两次重复的元素存在
多种变换解法
解法一:不浪费内存,只用原始的列表
这种方法好处在于:就是不需要额外申请一个新的存储空间,但是切记pop的时候要倒过来pop,从列表的后面往前
解法二:浪费一些内存,多用一个set()
解法三:保持原来的顺序,最后用yield
上面几种解法都是不错的,但是列表的顺序变了,有没有什么巧妙的方法可以不改变顺序呢,有的,用yield
发现yield还蛮管用的~~
刷题特别是刷LeetCode有趣也很有挑战,这只是开始,有兴趣的同学可以试试,是不是觉得蛮好玩的,今天的文章希望能给初学者一些启发,若有什么不懂的,也可以留言跟我探讨交流.
另外微信和苹果的事,我觉得才刚刚开始~~打赏已经没有了,大家想支持我,多留言吧
ZZS
优秀人才不缺工作机会,只缺适合自己的好机会。但是他们往往没有精力从海量机会中找到最适合的那个。100offer 会对平台上的人才和企业进行严格筛选,让「最好的人才」和「最好的公司」相遇。
欢迎大家关注 菜鸟学Python",更多好玩有趣的Python原创教程,趣味算法,经验技巧,行业动态,尽在菜鸟学Python,一起来学python吧
同学,我想帮你的
同学,学Python真的不能这样学
Python语言如何入门
用Python写个弹球的游戏
Python写个迷你聊天机器人
用Python破解微软面试题|24点游戏
2道极好的Python算法题|带你透彻理解装饰器
一道Google的算法题 |Python巧妙破解
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 强烈推荐Python初学者学习——字典11/27
- ♥ python如何判断是否为数字类型10/11
- ♥ 如何在python中下载numpy08/20
- ♥ 如何在python中实现加密12/23
- ♥ python切片有什么特点12/07
- ♥ 大厂中秋礼盒PK!阿里走情怀,腾讯更复古,猜猜最走心的是。。。05/25
内容反馈