Day1:leetcode136 && filter palindrome &&闭包及返回函数

来源:互联网 发布:天猫比淘宝有什么优势 编辑:程序博客网 时间:2024/05/29 13:06

136. Single Number

 
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

想了各种办法都没办法实现o(n)的时间复杂度+o(1)的空间度,感谢kema叔的指导。
下午学python学到filter这个告诫函数,filter()接受一个函数和一个序列,把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。用这个可以快速的实现数据的筛选,于是写了一个判断是否为palindrome number的函数,来筛选2000以内的回数。(感觉比java写起来方便很多)

吃饭前看到闭包,被两段代码看得一脸蒙蔽,如下:

开始是我自己概念忘记了,不知道f1,f2,f3对应的分别是fs中的每个元素,事实上,赋值给f1,f2,f3的时候并没有执行f这个函数,只是让f1,f2,f3指向了那一块内存地址,也就是给那块内存地址贴了一个“标签”,等到调用f1,f2,f3的时候才开始执行 f,而这时候三个f都引用了外部变量i,i循环过后变成3,所有三个结果均为9。


0 0
原创粉丝点击