求解两个有序数组的交集

/**
* 求解两个有序数组的交集
* @param a
* @param b
* @return
*/
public static List<Integer> join(int[] a , int[] b){

  List<Integer> list = new LinkedList<Integer>();
  int ai = 0;
  int bi = 0;
  while (ai < a.length && bi < b.length) {
    if (a[ai] == b[bi]) {
      // 两个相等即交集
      list.add(a[ai]);
      ai++;
      bi++;
    } else if (a[ai] > b[bi]) {
      // 移动小得数组index
      bi++;
    } else {
      // 移动小值得数组index
      ai++;
    }
  }

  return list;

}

猜你喜欢

转载自www.cnblogs.com/xhly-ylhx/p/11737780.html