用户工具

站点工具


google:job:array

到此差别页面的链接

google:job:array [2012/01/18 07:40] (当前版本)
行 1: 行 1:
 +====== Google数组算法面试题 ======
 +
 +===== 题目 =====
 +
 +T( 0 ) = 1 ; T(1)=1;​T(2)=2;​T(n)=T(n-1)+T(n-2)+T(n-3);​
 +
 +用最优方式求T(n) ;
 +
 +int T(int n)
 +{
 +
 +}
 +
 +可以用最熟悉的语言写,​不考虑溢出情况
 +
 +===== 解答 =====
 +
 +==== 解答一 ====
 +
 +给出一个Python的非递归解答
 +
 +<code python>
 +#! /bin/python
 +
 +def t(n, T=[0,1,2]):
 +  print T
 +  if len(T) > n: return T[n]
 +  else:
 +    for i in range(3,​n+1):​
 +      T.append(T[-1]+T[-2]+T[-3])
 +    return T[n]
 +
 +if __name__ == "​__main__":​
 +  print t(50);
 +  print t(5);
 +
 +</​code>​
 +
 +==== 解答二 ====
 +
 +<code python>
 +def t(n):
 +   def t_iter(r, n):
 +       ​return r if n == 1 else t_iter([r[1],​ r[2], r[0] + r[1] + r[2]], n-1)
 +   ​return t_iter([0, 1, 2], n)
 +</​code>​
  
google/job/array.txt · 最后更改: 2012/01/18 07:40 (外部编辑)