leetcode 二分查找·系统掌握 寻找比目标字母大的最小字母

题目:

给你一个字符数组 letters,该数组按非递减顺序 排序,以及一个字符 targetletters至少有两个不同的字符。

返回 letters 中大于 target 的最小的字符。如果不存在这样的字符,则返回 letters 的第一个字符。

题解:

本题就是非常经典的泛型二分~01~查找模型,但是需要注意,这样查找出来的可能是预期答案,第一个1,也可能是最后一个0(当查找范围全是0时),所以需要对结果特判一下。

cpp 复制代码
char nextGreatestLetter(vector<char>& letters, char target) {
        int l=0,r=letters.size()-1;
        while(l<r){
            int mid=(l+r)>>1;
            if(letters[mid]>target)r=mid;
            else l=mid+1;
        }
        if(letters[l]>target)return letters[l];
        else return letters[0];
    }
相关推荐
9359612 小时前
机考31 翻译25 单词18
c语言·算法
每天要多喝水13 小时前
单调栈Day36:接雨水
算法
AI科技星13 小时前
时空的几何本源与物理现象的建构:论统一场论的宇宙二元论与观察者中心范式
人工智能·线性代数·算法·矩阵·数据挖掘
CelestialYuxin13 小时前
A.R.I.S.系统:YOLOx在破碎电子废料分拣中的新探索
人工智能·深度学习·算法
_ziva_14 小时前
YOLO 目标检测算法深度解析:从原理到实战价值
算法·yolo·目标检测
Jason_Honey214 小时前
【蚂蚁金服Agent算法岗一面】
人工智能·算法·自然语言处理·面试
weixin_4772716914 小时前
《老子》一书作者“李耳”简介
算法·图搜索算法
智算菩萨14 小时前
交错多模态内容生成:从“单张图“到“图文混排长文“的创作范式变革
人工智能·算法·aigc
Flying pigs~~14 小时前
机器学习之KNN算法
算法·机器学习·大模型·knn·k近邻算法·大数据处理
Navigator_Z14 小时前
LeetCode //C - 962. Maximum Width Ramp
c语言·算法·leetcode