#include <iostream> #include <algorithm> #include <vector> int main() { std::vector<int> nums{ 1, 3, 5, 10, 10 }; auto it = std::upper_bound(nums.begin(), nums.end(), 10); auto idx = std::distance(nums.begin(), it) - 1; std::cout << idx << "\n"; }
Cześć, napisałem coś takiego. Myślisz, że jest git? Gdy go testowałem to wszystko wychodziło dobrze, ale mogłem coś przeoczyć.
int l=-1,r=array.size(); while(r - l > 1){ int mid = l + (r - l) / 2; if(array[mid] <= x) l = mid; else r = mid-1; } cout << l << ' ';
A tylko nie dałeś if-a. w sensie przed cout << l << ' ', możesz dać:
if (l == -1) cout << "NIE ZNALAZLEM"; else cout << l;
93,425 zapytań
142,421 odpowiedzi
322,646 komentarzy
62,785 pasjonatów
Motyw:
Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡
Oto polecana książka warta uwagi.Pełną listę książek znajdziesz tutaj