[Leetcode] 每日两题 81 1078

81. 搜索旋转排序数组 II

请添加图片描述

这种题 一看题目用意就知道是让大家伙练练二分查找,由于是由非降序数组旋转一次组成,所以只有一个点会出现数组非降序,那么就可以分为两类, 若目标值 在mid - right 那就 left移动 若目标值在left-mid 那就right 移动,若都不在而mid 到right 又是非降序,那么很可惜 目标值肯定不在mid-right 所以right 移动,值得注意的是记得重复数字先过一遍(又违背了二分 害 可惜 当然如果闲的蛋疼也可以二分去过一遍)

class Solution:
    def search(self, nums: List[int], target: int) -> bool:
        left = 0 
        right =len(nums)-1
        while left <= right :
            mid = (left+right)//2
            if nums[mid] ==target :
                return True
            if nums[right] == nums[mid]:
                right -=1
                continue
            if nums[mid]< target and target<=nums[right] :
                left =mid+1
            elif nums[left]<=target and target<nums[mid]:
                right =mid-1
            elif nums[mid]<nums[right]:
                right = mid -1
            else :
                left =mid+1
        return False   

暴力和上述方法时间一样

        for num in nums:
            if num == target:
                return True
        return False
1078. Bigram 分词

请添加图片描述

暴力 扫一遍 记得别越界

class Solution:
    def findOcurrences(self, text: str, first: str, second: str) -> List[str]: 
        res = []
        words = text.split()
        for i in range(len(words)-2):
           if words[i] == first and words[i+1] and words[i+1]==second and words[i+2]:
               res.append(words[i+2])
        return res

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值