5 11阿里實習生筆試第一題

2021-08-20 02:11:47 字數 797 閱讀 4517

題目:有乙個陣列,可以從中取任意個元素,但是取出的數相鄰兩個數不能取出,編寫乙個程式,輸入為陣列長度n和陣列,返回可以取出的最大值。

舉例:陣列 a=,可以取出的最大值為4

用的是遞迴的解法,假設此時n-1個數的情況我們已經解決了,我們考慮第n個數要不要取:

public

static

intsolve(int n,int a)

//n=1時

if(n == 1)

return a[0];

//n=2時

if(n == 2) else

if(n>=3) else

}return

0; }

懶人乙個,沒力去寫scanner,直接手動測試(

int a = new

int ;

int t = solve(6,a);

system.out.print(t);

測試結果:

2+7+2=11,嗯,沒毛病。

這玩意說實話我並不擅長……根據遞迴式大概估計了一下,n=1和n=2時就是比較,常數o(1),主要是n>=3,每次遞迴只減少1或者2,所以複雜度大概是 θ(n^2) 吧。。。。還是挺慢的,不知道大家有沒有更好的解法分享一下,如果我的解法有什麼錯誤也歡迎指正!

阿里筆試第一題

問答題1 輸出結果 21.25 7.50 30.00 2.50 從左到右依次為執行時間 單位是ms 此sql語句的分類,sql語句 2.5 0 insert into tablea values 1,columna columnb 12.5 1 insert into tableb values 2...

2020阿里實習生招聘筆試題

小強有n個養雞場,第i個養雞場初始有a i 只小雞,小強的每個養雞場每天早上都會增加k只小雞,到了下午小強會把雞最多的雞場賣掉一半雞,那麼小強想知道m天後他所有養雞場一共有幾隻雞。第一行輸入三個正整數n,m,k 第二行輸入n個正整數a i 表示養雞場雞數量。1 n 100000,1 m 100000...

阿里 2020暑期實習生 筆試回憶

給若干點的座標,代表每乙個村子,現在要修一條平行於y軸且無限長的水渠,求所有村莊距離這條水渠垂直長度之和的最小值。include include include include include using namespace std intmain cout minval system pause ...