still binary search
four cases:
case 1)
	num[mid -1] == num[mid] && num[mid] == num[mid + 1]
case 2)
	num[mid - 1] != num[mid] && num[mid] != num[mid + 1]
case 3)
	num[mid - 1] == num[mid] && num[mid] != num[mid + 1]
case 4)
	num[mid - 1] != num[mid] && num[mid] == num[mid + 1]