/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
}
}
class Solution {
public int[] searchRange(int[] nums, int target) {
int lowest = findLowestIndex(nums , target);
int highest = findHighestIndex(nums , target);
return new int[]{lowest , highest};
}
public int findLowestIndex(int[] nums ,int target){
int ansidx = -1;
int l = 0;
int r = nums.length-1;
while(l<=r){
int mid = l + (r-l)/2;
if(nums[mid] == target){
ansidx = mid;
r =mid-1;
}else if(nums[mid] < target){
l = mid+1;
}else{
r = mid - 1;
}
}
return ansidx;
}
public int findHighestIndex(int[] nums ,int target){
int ansidx = -1;
int l = 0;
int r = nums.length-1;
while(l<=r){
int mid = l + (r-l)/2;
if(nums[mid] == target){
ansidx = mid;
l =mid+1;
}else if(nums[mid] < target){
l = mid+1;
}else{
r = mid - 1;
}
}
return ansidx;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCX0KfQoKY2xhc3MgU29sdXRpb24gewogICAgcHVibGljIGludFtdIHNlYXJjaFJhbmdlKGludFtdIG51bXMsIGludCB0YXJnZXQpIHsKCiAgICAgICAgaW50IGxvd2VzdCAgPSBmaW5kTG93ZXN0SW5kZXgobnVtcyAsIHRhcmdldCk7CiAgICAgICAgaW50IGhpZ2hlc3QgPSBmaW5kSGlnaGVzdEluZGV4KG51bXMgLCB0YXJnZXQpOwogICAgICAgIAoKICAgICAgICByZXR1cm4gbmV3IGludFtde2xvd2VzdCAsIGhpZ2hlc3R9OwogICAgICAgIAogICAgfQoKICAgIHB1YmxpYyBpbnQgZmluZExvd2VzdEluZGV4KGludFtdIG51bXMgLGludCB0YXJnZXQpewogICAgICAgIGludCBhbnNpZHggPSAtMTsKICAgICAgICBpbnQgbCAgPSAwOwogICAgICAgIGludCByID0gbnVtcy5sZW5ndGgtMTsKICAgICAgICB3aGlsZShsPD1yKXsKICAgICAgICAgICAgaW50IG1pZCA9IGwgKyAoci1sKS8yOwogICAgICAgICAgICBpZihudW1zW21pZF0gPT0gdGFyZ2V0KXsKICAgICAgICAgICAgICAgIGFuc2lkeCA9IG1pZDsKICAgICAgICAgICAgICAgIHIgID1taWQtMTsKICAgICAgICAgICAgfWVsc2UgaWYobnVtc1ttaWRdIDwgdGFyZ2V0KXsKICAgICAgICAgICAgICAgIGwgPSBtaWQrMTsKICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICByID0gbWlkIC0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0gCiAgICAgICAgcmV0dXJuIGFuc2lkeDsKCiAgICB9CgogICAgcHVibGljIGludCBmaW5kSGlnaGVzdEluZGV4KGludFtdIG51bXMgLGludCB0YXJnZXQpewogICAgICAgIGludCBhbnNpZHggPSAtMTsKICAgICAgICBpbnQgbCAgPSAwOwogICAgICAgIGludCByID0gbnVtcy5sZW5ndGgtMTsKICAgICAgICB3aGlsZShsPD1yKXsKICAgICAgICAgICAgaW50IG1pZCA9IGwgKyAoci1sKS8yOwogICAgICAgICAgICBpZihudW1zW21pZF0gPT0gdGFyZ2V0KXsKICAgICAgICAgICAgICAgIGFuc2lkeCA9IG1pZDsKICAgICAgICAgICAgICAgIGwgID1taWQrMTsKICAgICAgICAgICAgfWVsc2UgaWYobnVtc1ttaWRdIDwgdGFyZ2V0KXsKICAgICAgICAgICAgICAgIGwgPSBtaWQrMTsKICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICByID0gbWlkIC0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0gCiAgICAgICAgcmV0dXJuIGFuc2lkeDsKICAgIH0KCgp9