here i have a recursion code specifically a binary search code(recurion) ll bs(ll l, ll h, vector wins[], ll k, ll i)// { if(l<=h) { ll m=(l+h)/2;
if(wins[i][m]<=k){
if(m+1<=h){
if(wins[i][m+1]<=k){
return bs(m+1, h, wins, k, i);
}else{
return m+1;
}
}else{
return m+1;
}
}else{
return bs(l, m-1, wins, k, i);
}
}else{
return 0;
}
} and i converted it to while loop binary search but i am not getting desired output my code : ll binary(vector wincnt, ll player, vector rounds[], ll k){ int ans = 0; ll l = 0; ll r = wincnt[player]-1; while(l <= r){ int mid = l + (r — l) / 2; if(mid+1<=r){ if(rounds[player][mid+1]<=k){ l = mid+1; }else{ return m+1; } } else{ r = mid-1; } } return ans; } what did i do wrong
Полный текст и комментарии »