美文网首页
leetcode学到的东西

leetcode学到的东西

作者: Kair | 来源:发表于2015-02-25 09:49 被阅读419次

寒假本来是打算开始公司新项目,结果美工太拖了。于是一边搞其他东西,一边做leetcode。熟悉了一下django,还有复习了python,学习到了很多技巧,关于python的。

  1. python的三目表达式
    python中是没有类似于PHP或者C++那些的三目表达式的,一开始我是比较纳闷的,因为python这样的语言,要是连这种语法结构都没有就太奇怪了。于是后来找到了类似的东西。
//这是php的写法,基本相同与其他语言
function fun()
{
    return 1==2?1:2;
}
def fun():
      return 1 if 1==2 else 2
  1. python的for循环
    我在写leetcode的时候是经常使用到for循环的,因为经常有变量需要遍历,python的for循环不同与其他语言,但是我觉得使用起来其实还是蛮方便的
#这里假设有一个叫做data的list变量
for x in data:

这样的写法是直接遍历数组变量了,遍历不了下标,有时候很需要使用下标,就要使用另外一种方法

for x in range(len(data)):
for x in xrange(len(data)):

这两种方法是数组遍历下标的方法,但是有区别,range和xrange的速度上是不一样的,详细可以百度一下。
有时候会遇到一种情况,需要从数组的最后一个数往前遍历,以往PHP或者java那些的做法是for循环下标往前遍历,python也能那么写,但是有些地方需要注意。

for x in xrange(len(data)-1,-1,-1):

往前循环的时候,下标是从你传入参数的第一个数开始循环的,而不是和往后循环的时候一样的。比如:xrange(9) 循环的结果是0--8,xrange(9,-1,-1)循环的结果是9--0。之前好多次写算法的时候没注意,导致数组越界。

  1. python的sort函数
    在C++中,sort函数是algorithm库中的一个函数,最实用的功能就是可以根据类的某项属性排序类,在vector这些地方非常实用,大一暑假项目实训的时候,写高考预录取信息系统,为了排序考生的成绩,C++的sort就帮了不少忙。
    python的sort也很好用,但是主要那时候我还不够熟悉。
sort(key=lambda x:x.start)

这种写法就是可以实现类排序的写法了,Merge Intervals里,第一次用上。

  1. sort 和 sorted
    具体可以百度,这里只讲一点,就是sorted会返回一个结果,sort会改变结构。

  2. python的速度
    其实python的速度相对是可以了,我在完成一道题的时候,使用了三种语言对比(C++,JAVA,PYTHON),python的速度比较中肯。

  3. 递归和迭代
    递归写起来很舒服,两三句话搞定,但是速度就太一般了,我在爬楼梯的时候,分别使用了迭代和递归,递归写起来不要太舒服。

class Solution {
public:
    int climbStairs(int n) 
    {
        if (n == 1 || n == 2)
            return n == 1 ? 1 : 2;
        return climbStairs(n - 1) + climbStairs(n - 2);
    }
};

超时了,无解。
但是使用迭代,速度是2MS。

  1. 还有的想不起来了,没有及时总结,过年太颓废了,一行代码都没有写。leetcode的easy还有几道题,希望戒掉拖延症,这个学期内,利用琐碎的时间完成leetcode所有题目。有梦想的人不睡觉。

相关文章

  • leetcode学到的东西

    寒假本来是打算开始公司新项目,结果美工太拖了。于是一边搞其他东西,一边做leetcode。熟悉了一下django,...

  • 学到的东西

    这次出航,见到了不少人,遇到了各种事,他们有人说比我学的一年还多,其中更多的还是: 1、遇事不慌张,气场最重要,没...

  • 今天学到的东西

    最低目标法:每天学习一点点东西就可以了,有余力的时候可以多学一点,重要的是坚持下去细水长流 锻炼:运动不一定非要跑...

  • 5.24学到的东西

    今天开了4000的复购,还是值得庆祝的。 通过率高的吓人,但是就一个购买,唉,而且这个还地址有点问题,我太难l。。...

  • zb学到的东西

    1、【】规范格式。 2、别人教的东西及时做记录。 3、问问题之前先问下自己能不能解决,自己思考一下,不要一遇到就问...

  • 面试中学到的东西

    1、label 不通过计算怎么实现自适应?通过看这篇文章可以有了解https://blog.csdn.net/kl...

  • 补昨天学到的东西

    一直找不到搞笑阅读公众号的办法,终于找到,把文章在 Safari 里面打开,然后点击分享,选择印象笔记,然后全部存...

  • 在jq学到的东西

    1、统计数字的时候试着找规律,不要死板的一个个算 2、口语化生活化的用在正式的场合显得更有趣和亲切 3、遇到解决不...

  • 学到很多东西的诀窍

    1:学到很多东西的诀窍,就是不要一下子学很多东西。(约翰洛克) 2学习需要不断的重复,大量的重复,只有把想学的东西...

  • 玩基金学到的东西

    看今天的白酒基金,爆涨!玩了一年多的基金,看惯了涨涨颠颠,倒是锻炼了我的心态。当初玩基金也只是想接触一下理财方面的...

网友评论

      本文标题:leetcode学到的东西

      本文链接:https://www.haomeiwen.com/subject/rbauxttx.html