Hãy xem xét hai mảng được sắp xếp: -
int[] array1 = {1,2,3,4,5,6,7,8};
int[] array2 = {2,4,8};
int i=0, j=0; //taken two pointers
Trong khi vòng lặp sẽ chạy cho đến khi cả hai con trỏ lên tới độ dài tương ứng.
while(i<array1.length || j<array2.length){
if(array1[i] > array2[j]) //if first array element is bigger then increment 2nd pointer
j++;
else if(array1[i] < array2[j]) // same checking for second array element
i++;
else { //if both are equal then print them and increment both pointers
System.out.print(a1[i]+ " ");
if(i==a1.length-1 ||j==a2.length-1) //one additional check for ArrayOutOfBoundsException
break;
else{
i++;
j++;
}
}
}
Output sẽ là: -
2 4 8
Nguồn
2017-08-04 23:13:45
Chúng tôi sẽ không làm bài tập ở nhà của bạn cho bạn – shoosh
Đây là một câu hỏi phỏng vấn. – user288609
Thực hiện bài tập về nhà ngay bây giờ, và sau 5 năm, nó sẽ trở thành đồng nghiệp của bạn và bạn sẽ thực hiện công việc hoặc sửa lỗi nghiêm trọng hơn. – Guge