>

自由软件精神——“自由、开放、分享”。自由软件自诞生之日起,就秉承了学术自由的思想,信奉科学无国界,知识应该全人类共享。

ubuntu精神——人道待人,天下共享连接人人的信念。具有 ubuntu 精神的人心胸开阔,乐于助人,见贤思齐而不忌妒贤能......

文章来源 2014.09

要有追求

如果你连追求自己喜欢的人和事物的勇气都没有,就注定是一个失败者!

标签:

产品创新

推动社会进步才是真正的创新!那些砸碎一个旧世界,不重视前人工作的“创新”未必是创新!

标签:

宽容

如果不把悲痛和怨恨留在身后,那么我们的心永远在监狱里,得不到解脱。

标签:

坚持学习

毋庸置疑,最珍贵的财富是不断学习!

标签:

好员工

一个公司迫切需要那些能够对工作积极主动负责的员工!而不是被动等待安排工作!

标签:

别害怕失败

人人都想进天堂,但是没有人愿意去死!

标签:

将欲取之,必先予之

要先有付出,才谈回报!做好产品,才有投资,而不是反过来,那样无异于缘木求鱼了!

标签:

要能容人

海纳百川,我们的FBT才可以做大!多听取不同的意见,包括用户的批评意见!

标签:

leetcode 刷题 Generate Parentheses

其实非常简单,()对应一颗二叉树的两个分支,就是从深度为n的二叉树里面去寻找满足要求的括号组合!深度优先思路。最后神坑的地方就是题目没有说清楚任意位置左边括号必须多余右边括号!

标签:

leetcode刷题 Rotate List

讨厌这种模棱两可的题目!尼玛,k要和链表长度求余题目也不说清!求数组长度并将链表变为环的代码:leng=1;while node.next: node=node.next leng+=1; node.next=head!要熟!

标签:

leetcode刷题 Search in Rotated Sorted Array

如果A[mid]大于等于A[low],则[low,mid]递增在这上面用二分查找,反正[mid,high]递增,用二分在A[mid]~A[high]二分!MS面试,SB的我少了3个==!

标签:

leetcode刷题 Search for a Range

没啥说的,就考二分!left=0,right=len(A)-1;while(left<=right){mid=(left+right)/2;cmp(A[mid],target)},然后找到以后就一直向两边扩展即可!

leetcode刷题 Trapping Rain Water

DP啊!大哥,下次能够一下子想到了吧!就是memoize的变种! 每个柱子的积水=min(它左边最高的柱子-它右边最高的柱子)-自己柱子的高度 他左边和右边最高的柱子用个数组来记录下,然后求和就可以了!

标签:

leetcode刷题 Unique Binary Search Trees

反正求数目的题目肯定都是让你推导公式的!要么就是递推公式f(n)和f(n-1),f(n-xxx)关系式,类似fib!这种题目很难直接求解出函数表达式的!如果可以的话,那出题的人肯定是个数学家!此外,推导的时候要学会抽象!例如n=4:f(4)=f(0)*f(3)+f(1)*f(2)+f(2)*f(1)+f(3)*f(0),就这么简单!管他是不是一维DP!哦,忘记说了记得重构程序的冗余代码(合并边界)!

标签:

leetcode ZigZag Conversion

主要是熟悉下enumerate(collection),reduce(lambda x,y: x+y, collections),然后就是代码要写得很优雅!

标签:

Linked List Cycle

尼玛!下次我再手写不对我就去死!

标签:

leetcode刷题 Linked List Cycle II

其实非常简单,链表的问题多用快慢指针搞定!faster=slower=head while faster and faster.next: faster=faster.next.next slower=slower.next if faster==slower: return True 这就是找到环的唯一条件!要熟啊!此时要找到该环的第一个交叉节点,再设置2个指针一个head,一个是相遇处的slower指针,同时走下去,下次相遇的地方就是环的交叉点!

标签:

leetcode刷题 Populating Next Right Pointers

就是层序遍历,一个队列搞定,queue = collections.deque([root]), while len(queue): node=queue.popleft() do_with(node) queue.append(node.left) queue.append(node.right)!此外,deque没有top函数,只有自己用下标0来取出首个元素!此外 pow2的写法,要熟,反之就x 与操作 (x-1)==0即可判定!

标签:

leetcode刷题 Implement strStr()

就是求字符串的子串!python里find返回-1表示未找到,用index则抛出异常表示未找到子串!而取出子串用[found_index:]即可!字串里是没有substr函数的哈!

标签:

leetcode刷题 Gray Code

没啥说的,对于十进制数x,其gray code位(x>>1) ^ (x)!就这么简单!此外python里array=[0]*n就是分配n个元素的一维数组,[[0]]*n就是n个元素的二维数组!要熟!

标签:

leetcode刷题 Add Two Numbers

就是链表的操作:while(node): do_with_node_val node=node.next没啥说的!注意细节即可!

标签:

leetcode刷题 3Sum

转换位two sum问题,[1,2,3] in [[3,2,1],[1,2,3]] == True!

标签:

leetcode刷题 atoi

就是细节多点!其实还好!先去掉无意义的输入例如空格,long(str)就直接转换位整数,然后看是否越界!

标签:

leetcode刷题 Pow

看似简单实则不好做!用递归会超时! 看透这个例子就没有问题了: pow(x,11)=pow(x,0x1011)=x * x^2 * x^8!!!

标签:

leetcode刷题 Sqrt

主要是考查二分法和牛顿迭代法。 二分要熟,就几行代码: start=0, end=x while(start<=end): mid=(start+end)/2 if f(mid) ==0: return mid else if(f(mid) >0): start=mid+1 else end=mid -1 return end 牛顿迭代法也没啥说的!就是导数而已。还有一个细节就是(x+.0)/2。当心!

标签:

返回顶部