# """# This is ArrayReader's API interface.# You should not implement it, or speculate about its implementation# """# class ArrayReader:# def get(self, index: int) -> int:classSolution:defsearch(self,reader,target):""" :type reader: ArrayReader :type target: int :rtype: int """left,right=0,20000whileleft<right:mid=(left+right)>>1ifreader.get(mid)>=target:right=midelse:left=mid+1returnleftifreader.get(left)==targetelse-1
1 2 3 4 5 6 7 8 910111213141516171819202122
/** * // This is ArrayReader's API interface. * // You should not implement it, or speculate about its implementation * interface ArrayReader { * public int get(int index) {} * } */classSolution{publicintsearch(ArrayReaderreader,inttarget){intleft=0,right=20000;while(left<right){intmid=left+right>>1;if(reader.get(mid)>=target){right=mid;}else{left=mid+1;}}returnreader.get(left)==target?left:-1;}}
1 2 3 4 5 6 7 8 9101112131415161718192021222324
/** * // This is the ArrayReader's API interface. * // You should not implement it, or speculate about its implementation * class ArrayReader { * public: * int get(int index); * }; */classSolution{public:intsearch(constArrayReader&reader,inttarget){intleft=0,right=20000;while(left<right){intmid=left+right>>1;if(reader.get(mid)>=target){right=mid;}else{left=mid+1;}}returnreader.get(left)==target?left:-1;}};
1 2 3 4 5 6 7 8 9101112131415161718192021222324
/** * // This is the ArrayReader's API interface. * // You should not implement it, or speculate about its implementation * type ArrayReader struct { * } * * func (this *ArrayReader) get(index int) int {} */funcsearch(readerArrayReader,targetint)int{left,right:=0,20000forleft<right{mid:=(left+right)>>1ifreader.get(mid)>=target{right=mid}else{left=mid+1}}ifreader.get(left)==target{returnleft}return-1}