内容来自论坛:
http://topic.youkuaiyun.com/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]