获取两个数组的交集


/* finds the intersection of 
 * two arrays in a simple fashion. 
 *
 * PARAMS
 * a - first array, must already be sorted
 * b - second array, must already be sorted
 *
 * NOTES
 *
 * Should have O(n) operations, where n is 
 *  n = MIN(a.length(), b.length())
 */

//两个数组必须先排序
function arrayIntersection(a, b){
 var ai=0, bi=0;
 var result = new Array();
 while( ai < a.length && bi < b.length ){
   if (a[ai] < b[bi] ){ ai++; }
   else if (a[ai] > b[bi] ){ bi++; }
   else{ /* they're equal */
    result.push(a[ai]);
    ai++;
    bi++;
   }
 }
 return result;
}

猜你喜欢

转载自ztao2333.iteye.com/blog/2372435
今日推荐