面试题:求2个有序数组的有序交集
内容来自论坛:http://topic.csdn.net/u/20081012/14/3cc93688-1f7f-4985-806c-3f729c78261b.html
14给出了我认为最简单的算法,不过其犯了一点点小错误,我修正了。
[4, 7, 8, 8, 9, 100, 130, 150]
如果不允许重复,则使用TreeSet就行了。
[4, 7, 8, 9, 100, 130, 150]
14给出了我认为最简单的算法,不过其犯了一点点小错误,我修正了。
- public static void test() {
- int[] a = { 2, 3, 4, 4, 4, 4, 7, 8, 8, 8, 8, 9, 100, 130, 150, 160 };
- int[] b = { 4, 6, 7, 7, 7, 7, 8, 8, 9, 10, 100, 130, 130, 140, 150 };
- int i = 0, j = 0;
- ArrayList<Integer> al = new ArrayList<Integer>();
- while (i < a.length && (j < b.length)) {
- if (a[i] < b[j])
- i++;
- else if (a[i] > b[j])
- j++;
- else {
- al.add(a[i]); // 这里应该先加入,然后再加1
- i++;
- j++;
- }
- }
- System.out.println(al);
- }
[4, 7, 8, 8, 9, 100, 130, 150]
如果不允许重复,则使用TreeSet就行了。
- TreeSet<Integer> al = new TreeSet<Integer>();
[4, 7, 8, 9, 100, 130, 150]
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: 关于B/S架构下,如何让同一账号不能多次登录
- 下一篇:没有了