亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

LeetCode 刷題開胃菜

標簽:
Python

我一个同事是算法大牛精通多门语言,编程狂人,一个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

https://img1.sycdn.imooc.com//5d2fd6990001ff8205510355.jpg

两种解法:

1).利用集合set(),巧妙的差补一下

2).利用一个循环去判断一下,个人觉得不优美

3).我们用优美的推导列表生成一下,看一下func3()

https://img1.sycdn.imooc.com//5d2fd69d0001b83305540501.jpg

4).有没有其他解法呢,有我们有高阶函数filter()

https://img1.sycdn.imooc.com//5d2fd6a4000145c504720229.jpg

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种解法

https://img1.sycdn.imooc.com//5d2fd6a80001bab804760181.jpg

3.Remove Duplicates from Sorted Array II

跟上面的题类似,但是不知道列表里面有多少个重复的元素

4种解法

https://img1.sycdn.imooc.com//5d2fd6b700019a3105370490.jpg

思考题:

这道题还有2种解法,欢迎有兴趣的同学,大家留言交流

4.Remove Duplcateds from  Array III

跟上一题类似,同样是移除重复的元素,但是加深了难度,可以允许最多两次重复的元素存在

多种变换解法

解法一:不浪费内存,只用原始的列表

https://img1.sycdn.imooc.com//5d2fd6ed00013f1c07180404.jpg

这种方法好处在于:就是不需要额外申请一个新的存储空间,但是切记pop的时候要倒过来pop,从列表的后面往前

解法二:浪费一些内存,多用一个set()

https://img1.sycdn.imooc.com//5d2fd6f100013c4607290379.jpg

解法三:保持原来的顺序,最后用yield

上面几种解法都是不错的,但是列表的顺序变了,有没有什么巧妙的方法可以不改变顺序呢,有的,用yield

https://img1.sycdn.imooc.com//5d2fd6f50001292f07170322.jpg

发现yield还蛮管用的~~

刷题特别是刷LeetCode有趣也很有挑战,这只是开始,有兴趣的同学可以试试,是不是觉得蛮好玩的,今天的文章希望能给初学者一些启发,若有什么不懂的,也可以留言跟我探讨交流.

作者:菜鸟学python
链接:https://www.jianshu.com/p/760e50d075af


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消