**Problem Statement:**
Given the required input arguments, write an efficient algorithm to solve the **Binary Search** problem. Implement the required logic as specified by standard definitions for this classic algorithmic challenge.
**Hint / Expected Approach:**
Classic lo/hi/mid with integer overflow safe mid
**Edge Cases to Consider:**
- (1) Target not in array
- (2) Single element
- (3) Duplicate elements (first/last occurrence)