8.26筆記

33. 搜索旋轉排序數組

class Solution(object):
    def search(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        l = 0
        if not nums:
            return -1
        r = len(nums) - 1
        while l <= r:
            mid = (l + r)//2
            if nums[mid] == target:
                    return mid
            elif nums[mid] < nums[r]:
                if nums[mid]< target and target <= nums[r]:
                    l = mid + 1
                else:
                    r = mid - 1
            else:
                if nums[l] <= target and target < nums[mid]:
                    r = mid - 1
                else:
                    l = mid + 1
        return -1

22. 括號生成

class Solution(object):
    def generateParenthesis(self, n):
        """
        :type n: int
        :rtype: List[str]
        """
        res = []
        def gene(left,right,tep):
            if left == 0 and right == 0:
                res.append(tep)
                return 
            if left < 0 or right < 0 or left > right:
                return 
            gene(left-1,right,tep+'(')
            gene(left,right-1,tep+')')
        gene(n,n,"")
        return res

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章