小米暑期实习在线笔试2015-04-25
周五晚上參加了小米的全國在線筆試,使用的是百一測評,不得不說,這是我參加過的最不靠譜的在線筆試。
先來描述題目,再來吐槽,在線筆試就是三個必做題和兩個附加題。
必做題是三個算法題,
第一題是判斷兩個十進制數的二進制表示中有多少位是不一樣的,給的兩個數據是1999, 2999, 答案是7
第二題是最多兩次兩次買賣的最大股票的最大收益問題
第三題是最近的公共父節點,對樹中的每個節點編號,這個編號應該是根據深度遍歷的規則來編號的,然后
通過鄰接矩陣來表示節點之間的父子關系:
給出的數據是
0 1 0 1 1
1 0 1 0 0
0 1 0 0 0
1 0 0 0 0
1 0 0 0 0
節點indexA=1, indexB=2
答案結果1
我的思路:
二維動態規劃,base[i][j],表示節點i和j的最近共同父節點,即根節點與所有節點的共同父節點都是根節點,
然后依次判斷每個節點,對每個節點的額操作是先判斷起父節點(只有一個,并且索引值比它小),它和其他
節點的公共父節點就是其父節點和其他節點的公共父節點,但是它和父節點的公共父節點是其父節點。
然后判斷當前行是否是指定的indexA,如果是則返回bases[indexA][indexB]。
分割線==============================================吐槽開始
首先提交第一題的時候,顯示超時,當時我還是不是很意外,可能是時間復雜度比較高,因為我就是暴力求二進
制位然后比較,但是我驚奇的發現,我輸入的兩個測試數據是0,0,也超時,很震驚呀,然后注釋掉了所有的功能
代碼,直接return 0,奇跡出現了,還是超時,what ?我又點開其他兩題,分別都是return 0,居然都是超時,我
已經無法理解了,但是我又點了幾次,居然有一次是提示結果錯誤,這才是預期中的效果么,但是我又點了一次,
同樣的代碼,同樣的數據,提示超時,這個完全沒法進行了。
不過還想想了了想,畢竟已經過去半個小時了,不管怎么說還是要繼續往下做,后來我就在另一個電腦上開了編譯
器,把代碼輸進去調試,通過后在輸進頁面里,問我問什么這樣做?以為這個系統要求你不能離開它操作五次,我不小心
點了兩次360加速球,就用掉了兩次機會,我還敢在本機上使用IDE么。
當時間過去了1個小時15分鐘,突然發現系統變好了,可以正常提交了,趕緊測試下之前提交的兩個問題的代碼,還好
都通過了,然后開始做第三題,其實第三題一開始都沒看明白,鄰接矩陣不都是表示圖的么,第一次見表示樹,不過樹也是
一種圖了,也就不是很意外了,當我把代碼什么都搞完后,提示還有5分鐘,然后我就提交了,然后提示找不到硬件,再提交
提示找不到題目,然后被迫再次進入題目,提示已經結束,what?我看了下電腦,好像是已經結束了,難道我最后一題沒有
提交,或者說,我都沒提交題目。。。。。。我靠,我也是佩服我自己了,這是在搞什么。。。。。。
轉載于:https://www.cnblogs.com/chen310/p/4455584.html
總結
以上是生活随笔為你收集整理的小米暑期实习在线笔试2015-04-25的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下安装配置DHCP服务器
- 下一篇: 关于photoshop