Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. int n = this.length();
  2.  
  3. int lowR = 0;
  4. int highR = n-1;
  5.  
  6. while(lowR <= highR) {
  7.  
  8. int midR = (lowR+highR)/2;
  9.  
  10. int rrMin = 0;
  11. if(midR != 0) {
  12.  
  13. rrMin = this.inspect(midR-1, n-1);
  14.  
  15. if(target == rrMin) {
  16. return new int[] {midR-1,n-1};
  17. }
  18.  
  19. }
  20.  
  21.  
  22.  
  23. int rrMax = this.inspect(midR, n-1);
  24.  
  25. if(target == rrMax) {
  26. return new int[] {midR,n-1};
  27. }
  28.  
  29. if(target < rrMin) {
  30. highR = midR-1;
  31. //System.out.println("Less Row");
  32. }
  33. else if(target > rrMax) {
  34. lowR = midR+1;
  35. //System.out.println("More Row");
  36. }
  37. else{
  38. //System.out.println("Row Found: "+midR);
  39. int lowC = 0;
  40. int highC = n-1;
  41.  
  42. while(lowC <= highC) {
  43. int midC = (lowC+highC)/2;
  44. int rc = this.inspect(midR, midC)-target;
  45.  
  46. if(rc < 0) {
  47. lowC = midC+1;
  48. }
  49. else if(rc > 0) {
  50. highC = midC-1;
  51. }
  52. else{
  53. //System.out.println("["+target+"] Value Found at: {"+midR+","+midC+"}");
  54. return new int[] {midR,midC};
  55. }
  56. }
  57.  
  58. return null;
  59. }
  60.  
  61. }
  62. return null; // not found
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement