2022/04/03 leetcode 每日一题 寻找比目标字母大的最小字母(简单题)

 先说句其他的话:从今天开始 我想每天把leetcode做的题都记录一下 第一是因为我身边的一位大牛有在写 (以后啥时候心血来潮可能会@他 哈哈哈)其次是也是想记录一下现在的情况 不然怕回过头来看自己这段时间的学习像是啥也没干

好的 不多说废话了 我的学习记录就从一道简单题开始 :)

1.题目

通过率还是很高的 这题目还是很明显是用二分就可以求解出来的 不过是需要特判一下 我的判断语句是找到r - l == 1时退出循环,因为没有必要继续了 其次是党mid值小于等于target的时候需要继续往后找 其他的就没什么了 接下来贴上代码(c++写的)

class Solution {
public:
    char nextGreatestLetter(vector<char>& letters, char target) {
        int i = 0;
        int len = letters.size();
        int l = 0, r = len - 1;
        int mid = 0;
        while(r - l != 1){
            mid = (l + r) / 2;
            if(letters[mid] > target) r = mid;
            else if(letters[mid] <= target) l = mid;
        }
        if(letters[r] <= target) return letters[0];
        if(letters[l] > target) return letters[l];
        else return letters[r];
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值