#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 如果目标值存在返回下标,否则返回 -1
# @param nums int整型一维数组 
# @param target int整型 
# @return int整型
#
class Solution:
    def search(self , nums , target ):
        # write code here
        if len(nums) <= 0: return -1
        return self.s(nums, target, 0, len(nums) - 1)

    def s(self, nums, target, b, e):
        m = (b+e) // 2
        if nums[m] == target:
            while(m):
                if nums[m - 1] != target:
                    return m
                m -= 1
            return m
        if b == e:
            return -1
        if nums[m] > target:
            return self.s(nums, target, b, m - 1)
        return self.s(nums, target, m + 1, e)