1、(336)斐波纳契数列
描述:查找斐波纳契数列中第 N 个数。
所谓的斐波纳契数列是指:前2个数是 0 和 1 。第 i 个数是第 i-1 个数和第i-2 个数的和。斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 …
样例:给定 1,返回 0。给定 2,返回 1。给定 10,返回 34
开始的程序,时间上不能通过:
def fibonacci(self, n):
if n==1:
return 0
elif n==2:
return 1
else:
return self.fibonacci((n - 1)) + self.fibonacci((n - 2))
# write your code here
修改
def fibonacci(self, n):
a = [0,1]
if n==1:return 0
elif n==2:return 1
for i in range(2,n):
a.append(a[-1]+a[-2])
return a[n-1]
2、(452.) 删除链表中的元素
描述:删除链表中等于给定值val的所有节点。
样例:给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。
链表的删除
直接pre之下current.next
注意:如果删除的是头结点怎么办–新建节点,指向头结点
def removeElements(self, head, val):
a = ListNode(0)
a.next = head
cur = head
pre = a
while cur: #遍历链表
if cur.val == val:
pre.next = cur.next #删除
else:
pre = pre.next
cur = cur.next
return a.next
3、(454. )矩阵面积
描述:实现一个矩阵类Rectangle,包含如下的一些成员变量与函数:两个共有的成员变量 width 和 height 分别代表宽度和高度。
一个构造函数,接受2个参数 width 和 height 来设定矩阵的宽度和高度。
一个成员函数 getArea,返回这个矩阵的面积。
样例:
Java:
Rectangle rec = new Rectangle(3, 4);
rec.getArea(); // should get 12
Python:
rec = Rectangle(3, 4)
rec.getArea()
class Rectangle:
'''
* Define a constructor which expects two parameters width and height here.
'''
def __init__(self, width,height):
self.width = width
self.height=height
def getArea(self):
return self.width*self.height
4、(466) 链表节点计数
描述:计算链表中有多少个节点.
样例:给出 1->3->5, 返回 3.
def countNodes(self, head):
a = ListNode(0)
pre = a
a.next = head
cur = head
count =0
while cur :
count+=1
pre = cur
cur = cur.next
return count
5、632. 二叉树的最大节点
描述:在二叉树中寻找值最大的节点并返回。
样例:给出如下一棵二叉树:
1
/ \
-5 2
/ \ / \
0 3 -4 -5
返回值为 3 的节点。