大型互联网算法面试题

经过一些大型的互联网公司的面试,发现他们已经非常死板的效仿了国外的面试经验,在最后的时候一般都会涉及到几个算法题,不管他们自己会不会,哈哈

我在这里仅为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;
}




待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值