大型網際網路演算法面試題
阿新 • • 發佈:2019-01-25
經過一些大型的網際網路公司的面試,發現他們已經非常死板的效仿了國外的面試經驗,在最後的時候一般都會涉及到幾個演算法題,不管他們自己會不會,哈哈
我在這裡僅為mark一下,以備將來有兄弟能用到幫你一把,我會逐漸的更新文章
一、豌豆莢
1、排序好的兩個連結串列,求交集,我才用的是演算法複雜度為m+n的,程式碼如下
int[] a = new int[] { 1, 2, 3, 4, 8, 10 }; int[] b = new int[] { 6, 8, 10 }; int i = 0, j = 0; while (true) { if (a[i] > b[j]) { j++; } else if (a[i] < b[j]) { i++; } else { System.out.println("a[" + i + "]=" + a[i] + ",b[" + j + "]=" + b[j]); i++; j++; } if (i >= a.length || j >= b.length) break; }
2、給定一個長度為 n 的陣列 a[],求出 a[i] - a[j] 的最大值,其中 i > j。
int min = a[0];
int tmp = a[0];
int maxDiff = a[1] - a[0];
for (int i = 0; i < a.length; i++) {
if (min > a[i]) min = a[i];
tmp = a[i] - min;
if (maxDiff < tmp) maxDiff = tmp;
}
待續。。。