一.筆試兩個小時四道題
1.第一題數學題
題目:五個人和一堆數量為n的硬幣,依次取硬幣,每個人先拿一個硬幣放入堆中然后拿走五分之一,最后剩余的硬幣數量在[1000,2000]之間,求一開始的硬幣數
2.廣搜bfs
題目:M*N的數組nums,其中nums的值只會有0或1;每隔1小時后,值為1的上下左右緊鄰的位置如果是0就會變為1,求經過K小時后剩下為0的個數
3.深搜dfs
題目:二叉樹路徑和為sum的路徑數,其中路徑必須連續但可以不以根節點開始和葉節點結束,節點數值為[-100000,100000]
此題注意邊界:sum=0不能返回一個長度為0的路徑
4.動態規划
題目:長度為n的數組nums,每次在剩余數組中取一個數字獲得最終求和的最大值,求和規則:如果取nums[j],則sum += nums[j-1] * nums[j] * nums[j+1],當j-1<0,則nums[j-1] = 1,當j+1 >= len(n),則nums[j+1] = 1。其中1<n<500,1<nums[i]<100
例子:nums[4] = {3,1,5,8} 依次取 1,5,3,8 ,得到剩余數組{3,5,8} ,{3,8},{8},{},得到值為sum = 3*1*5 + 3*5*8 + 1*3*8 + 1* 8*1 = 167為最大值
注意:由於n可能為500,則500!算不了,所以不能用暴力的全排列