fork download
  1. // your code goes here
  2.  
  3. // function binarySearch(arr, n, target) {
  4. // let left = 0, right = n-1, mid;
  5.  
  6. // while(left<=right) {
  7. // mid = Math.floor((left+right)/2);
  8. // if(arr[mid] < target){
  9. // left = mid+1;
  10. // } else if(arr[mid] > target) {
  11. // right = mid-1;
  12. // } else {
  13. // return mid;
  14. // }
  15. // }
  16. // return -1;
  17. // }
  18.  
  19. // console.log(binarySearch([2, 4, 5, 8, 9], 5, 8));
  20.  
  21. // function lower_bound(arr, target) {
  22. // let n = arr.length, ans = -1;
  23. // let left = 0, right = n-1, mid;
  24.  
  25. // while(left<=right) {
  26. // mid = Math.floor((left+right)/2);
  27. // if(arr[mid] < target){
  28. // left = mid+1;
  29. // } else {
  30. // ans = mid;
  31. // right = mid-1;
  32. // }
  33. // }
  34. // return ans;
  35. // }
  36.  
  37. // console.log(lower_bound([2, 4, 4, 5, 8, 9], 4))
  38.  
  39. function upper_bound(arr, target) {
  40. let n = arr.length, ans = -1;
  41. let left = 0, right = n-1, mid;
  42.  
  43. while(left<=right) {
  44. mid = Math.floor((left+right)/2);
  45. if(arr[mid] <= target){
  46. left = mid+1;
  47. } else {
  48. ans = mid;
  49. right = mid-1;
  50. }
  51. }
  52. return ans;
  53. }
  54.  
  55. console.log(upper_bound([2, 4, 4, 5, 8, 9], 4))
Success #stdin #stdout 0.03s 16648KB
stdin
Standard input is empty
stdout
3