Handling Duplicates Correctly - Binary Search Variations & Edge Cases | OneNoughtOne