1. 程式人生 > >2012 人民搜尋 實習生招聘 筆試題

2012 人民搜尋 實習生招聘 筆試題

1、列印漢諾塔移動步驟,並且計算複雜度。
方法是遞迴,將n-1層移到中間柱,然後將最底層移到目標柱,然後再把n-1層移到目標柱。
f(n) = 2f(n-1) + 1 , f(1) = 1
f(n) + 1 = 2( f(n-1) + 1 )
f(n) = 2^n - 1
T(n) = O(2^n);
2、計算兩個字串的是否相似(字元的種類,和出現次數相同
  先比較strlen,如果不相等,直接返回false
  根據ASCII碼建表 str[255],然後比較字元的出現次數,如有一個不同,返回false。
  然後比較位置吧。有一個不同,就返回true。

3、定義二叉樹,節點值為int,計算二叉樹中的值在[a,b]區間的節點的個數。

任意一種方式遍歷二叉樹,如果值在 [a,b] 之間,計數器+1
4、一條路有k可坑,每次能跳平方數步長(1 4 9 16。。),不能跳到坑裡,從a跳到b最少幾步?(動態規劃題
動態轉移方程
f(n) = min( f(大於n的第一個平方數 -n) ,f(n- 小於n的第一個完全平方數) +1 )
【 補充 ing
在一個座標軸上, 給定兩個點,一個起點,一個終點,起點有一個方塊,方塊可以左右移動,但是移動的長度只能是平方數長(1,4,9,16 ••••) ,同時座標軸上還有洞,移動的過程中不能越過這個洞,不然會掉下去,問 由起點到終點 至少需要多少次移動,不能到達返回-1】
5、給一個整數陣列,求陣列中重複出現次數大於陣列總個數一半的數。