Pergunta de entrevista da empresa Google

Write a function to find intersection of 2 sorted arrays.

Respostas da entrevista

Sigiloso

25 de jan. de 2010

void intersection(int* arr1, int* arr2, int len1, int len2, int** res, int& len) { *res = NULL; int i1 = 0; int i2 = 0; len = 0; while(1) { if(arr1[i1] arr2[i2]) && (i2 0) { *res = new int[len]; for(int i=0; (i < len) && (i1+i < len1); i++) (*res)[i] = arr1[i1+i]; } }

2

Sigiloso

8 de fev. de 2010

void intersection(int *a, int la, int *b, int lb, int **res, int *lres) { int min_n = la < lb ? la:lb; (*res) = new int[ min_n ]; int ca = 0; int cb = 0; *lres = 0; while (ca < la && cb < lb) { while (a[ca] < b[cb] && ca < la) ca++; if (a[ca] == b[cb]) { (*res)[*lres] = a[ca]; (*lres)++; } cb++; } }

Sigiloso

3 de jan. de 2012

public static void main(String[] args) { // TODO Auto-generated method stub int [] A = {1,2,3,4}; int [] B = {4,5}; System.out.println(checkIntersection(A,B)); } private static String checkIntersection(int[] A, int[] B) { // TODO Auto-generated method stub int curA =0, curB=0; // indices for A and B String result = "No intersection"; while(curA B[curB]){ curB++; } else{ result = String.valueOf(A[curA]); } } return result; }