void main() {
List<int> a = [1, 3, 6, 7, 10, 11];
List<int> b = [2, 4, 5,14, 18, 19, 20, 21,23];
var res = findeMiddle(a,b);
print(res);
}
findeMiddle(List<int> A, List<int> B) {
int aLength = A.length;
int bLength = B.length;
int count = aLength + bLength;
int left =-1,right= -1, aStart=0, bStart = 0;
for(int i = 0; i <= count / 2;i++) {
left = right;
if((bStart < bLength) &&(A[aStart] >B[bStart] || aStart == aLength)){
right = B[bStart++];
} else {
right = A[aStart++];
}
}
if((count & 1) ==0) {
return (left +right) /2;
} else {
return right;
}
}