整體而言:這次面試還是收獲了一些東西。深深的領(lǐng)悟到自己算法能力的欠缺节视。其實還是有很大的遺憾的寻行。上來就是兩道算法題抗楔,直接寫算法连躏。項目啥的根本不在意。
最坑爹的是兩道算法題都不難勺良,然而由于種種原因當(dāng)時都沒寫好:各種原因(旁邊再談?wù)撜T人的工資尚困,做了3個小時的車,頭暈暈的逻谦,好吧不找借口邦马,還是沒有準(zhǔn)備好)后面聽同學(xué)說題目基本都是出自leetcode
首先第一題:
給定一個矩陣:然后由外到內(nèi)依次輸出
如下圖:
```private static int[][] a={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
public static void P(intm,intn,intk){if(m<0|| n<0){return;
}for(inti=k;i
System.out.println(a[k][i]);
}for(inti=k+1;i
System.out.println(a[i][n-1]);
}for(inti=n-2;i>=k;i--){
System.out.println(a[m-1][i]);
}for(inti=m-2;i>k;i--){
System.out.println(a[i][k]);
}
P(m-1,n-1,k+1);
}
```
第二題:
說是給定N元錢嘱腥,然后又 1,3,5,7單位的錢,問有多少種兌換方法
當(dāng)時直接寫了個遞推式
a[n]=a[n-1]+a[n-3]+a[n-5]+a[n-7]這個遞推式其實也是有意義的分苇。就是在有序的情況下
比如爬樓梯,一次可以爬 1階靖秩,3,5,7 等沟突,然而這里是無序的
當(dāng)時也是各種原因腦子不轉(zhuǎn)了扩劝“羟海回來之后想起來了,dp 顯然應(yīng)該有兩個維度宰睡,好遺憾
默默的傷心拆内。。抹沪。融欧。
遞推式如下:
```
a[i][j]=a[i-1][i]+a[i][i-coin[i]]
private int[][] a=newint[100][10000];
private int[] coin={0,1,3,5,7};
public void getNumberSplit(intn,intk){
for(inti=0;i<=n;i++)a[i][0]=1;
for(inti=1;i<=k;i++){
for(intj=0;j<=n;j++){
if(j>=coin[i])a[i][j]=a[i-1][j]+a[i][j-coin[i]];
elsea[i][j]=a[i-1][j];
}
}
System.out.println(a[k][n]);
}
```
順便說一句:我投的是數(shù)據(jù)研發(fā):我說我擅長hadoop ,然而一點都不問欠肾。只問算法題,打的不好瑟慈,一棒子打死借杰。第步。粘都。。堆生。