Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
FindKthElementDivideConquer
//g++ 5.4.0 #include <iostream> int findKthElement(int *arry1,int *arry2,int *end1,int *end2,int k); int main() { std::cout << "Hello, world!\n"; int arr1[5] = {2, 3, 6, 7, 9}; int arr2[4] = {1, 4, 8, 10}; int k=5; std::cout<<findKthElement(arr1,arr2,arr1+5,arr2+4,k-1); } int findKthElement(int *arry1,int *arry2,int *end1,int *end2,int k){ if(arry1 == end1) { return arry2[k]; } if(arry2 == end2 ) { return arry1[k]; } int mid1 = (end1 - arry1 )/2; int mid2 = (end2 - arry2)/2; if(mid1 + mid2 < k){ if(arry1[mid1] > arry2[mid2]){ findKthElement(arry1,arry2+mid2+1,end1,end2,k-mid2-1); } else { findKthElement(arry1+mid1+1,arry2,end1,end2,k-mid1-1); } }else{ if(arry1[mid1] > arry2[mid2]){ findKthElement(arry1,arry2,arry1+mid1,end2,k); } else { findKthElement(arry1,arry2,end1,arry2+mid2,k); } } }
run
|
edit
|
history
|
help
0
Matrix rotation
stack
Cross Multiplication
Teste sobrecarga de operadores
maximize the difference
c++
12535
Q
NumType
Prime_Number_Cpp