fork download
  1. public class Main {
  2. public static void main(String[] args) {
  3. int[] arr = {4,5,7,7,10,10,20,25,25,30,30,40,50};
  4. int k = 30;
  5. int ans[] = new int[2];
  6. ans[0] = firstIndex(arr,k);
  7. System.out.println("----------------------------------------------------------------------");
  8. ans[1] = lastIndex(arr,k);
  9. System.out.println(ans[0] +" "+ ans[1]);
  10. }
  11. public static int firstIndex(int[] arr, int k ){
  12. int f =0; int b = arr.length-1;
  13. int ans = -1;
  14. while(f <= b){
  15. int mid = f+(b-f)/2;
  16. if(arr[mid] == k){
  17. ans = mid;
  18. b = mid-1;
  19. }
  20. else if(k >arr[mid]){
  21. f = mid+1;
  22. }
  23. else{
  24. b = mid-1;
  25. }
  26. }
  27.  
  28. return ans;
  29. }
  30.  
  31. public static int lastIndex(int arr[], int k ){
  32. int f =0; int b = arr.length -1;
  33. int ans = -1;
  34. while(f <= b){
  35. int mid = f+(b-f)/2;
  36. if(arr[mid] == k){
  37. ans = mid;
  38. f= mid+1;
  39. }
  40. else if(k >arr[mid]){
  41. f = mid+1;
  42. }
  43. else{
  44. b = mid-1;
  45. }
  46. }
  47. return ans;
  48. }
  49.  
  50. }
  51.  
Success #stdin #stdout 0.15s 57508KB
stdin
Standard input is empty
stdout
----------------------------------------------------------------------
9         10