俩方法都是用二分查找,一个调库,一个自己写而已。

方法一,调库

 static int wing=[]()
{
std::ios::sync_with_stdio(false);
cin.tie(NULL);
return ;
}(); class Solution
{
public:
char nextGreatestLetter(vector<char>& letters, char target)
{
auto p=upper_bound(letters.begin(),letters.end(),target);
return p==letters.end()? letters[]:*p;
}
};

方法二,自己写二分

 static int wing=[]()
{
std::ios::sync_with_stdio(false);
cin.tie(NULL);
return ;
}(); class Solution
{
public:
char nextGreatestLetter(vector<char>& letters, char target)
{
int sz=letters.size();
int left=,right=sz-;
if(target>=letters[right])
return letters[];
while(left<=right)
{
int mid=left+((right-left)>>);
if(letters[mid]<target)
left=mid+;
else if(letters[mid]>target)
right=mid-;
else
left=mid+;
}
return letters[left];
}
};

自己写的时候要注意,在判定时,当letters[mid]==target的时候,不能直接就返回letters[mid+1],因为字符数组中有可能存在一大串和目标字符相等的元素,所以有可能返回到相等的元素之一。

744. Find Smallest Letter Greater Than Target的更多相关文章

  1. 【Leetcode_easy】744. Find Smallest Letter Greater Than Target

    problem 744. Find Smallest Letter Greater Than Target 题意:一堆有序的字母,然后又给了一个target字母,让求字母数组中第一个大于target的 ...

  2. [LeetCode&Python] Problem 744. Find Smallest Letter Greater Than Target

    Given a list of sorted characters letters containing only lowercase letters, and given a target lett ...

  3. 744. Find Smallest Letter Greater Than Target 查找比目标字母大的最小字母

    [抄题]: Given a list of sorted characters letters containing only lowercase letters, and given a targe ...

  4. 【LeetCode】744. Find Smallest Letter Greater Than Target 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 线性扫描 二分查找 日期 题目地址:https:// ...

  5. LeetCode 744. Find Smallest Letter Greater Than Target (时间复杂度O(n))

    题目 太简单了,直接上代码: class Solution { public: char nextGreatestLetter(vector<char>& letters, cha ...

  6. Python 解LeetCode:744. Find Smallest Letter Greater Than Target

    思路:二分法,时间复杂度o(logn) class Solution(object): def nextGreatestLetter(self, letters, target): "&qu ...

  7. LeetCode 744. Find Smallest Letter Greater Than Target (寻找比目标字母大的最小字母)

    题目标签:Binary Search 题目给了我们一组字母,让我们找出比 target 大的最小的那个字母. 利用 binary search,如果mid 比 target 小,或者等于,那么移到右半 ...

  8. Leetcode之二分法专题-744. 寻找比目标字母大的最小字母(Find Smallest Letter Greater Than Target)

    Leetcode之二分法专题-744. 寻找比目标字母大的最小字母(Find Smallest Letter Greater Than Target) 给定一个只包含小写字母的有序数组letters  ...

  9. [LeetCode] Find Smallest Letter Greater Than Target 找比目标值大的最小字母

    Given a list of sorted characters letters containing only lowercase letters, and given a target lett ...

随机推荐

  1. HandlerMapping和HandlerAdapter配置须知

    ---------------------siwuxie095                                 HandlerMapping 和 HandlerAdapter 配置须知 ...

  2. windows 2012安装不了KB2919355

    直接安装KB2919355会报错 “此更新不适用于你的计算机” 此时应先安装 KB2919442 https://www.microsoft.com/zh-cn/download/confirmati ...

  3. 写一写关于python开发面试的常遇到的问题以及解答吧,持续更新——看心情

    1,什么是python中的魔术方法? 魔术方法是重载运算符的昵称,形式是__init__类似这样的前后双下滑线组成的,常用的__init__,__new__,__call__,__str__,__ge ...

  4. width多少,超过了用....表示

    maxWidth:'140px',whiteSpace:'nowrap',overflow:'hidden',textOverflow:'ellipsis'

  5. rbac集成 权限分配。之用户管理

    流程都是一样的.就不在详细的记录.只写一点需要注意的地方! 或者 可以改进的地方! 1. 用户表中 只有. name  password email 三个字段. 但是添加用户的页面,应该还要有确认密码 ...

  6. Aspose.Words五 MergeField

    通过MegerField来循环,将数据保存到dataset的table中,dataset通过关联datarelation字段来指定主从表关系.模板中通过标签TableStart和TableEnd来框定 ...

  7. 不使用SwitchHosts修改C:\Windows\System32\drivers\etc\hosts文件

    1.nginx中的nginx.conf完成修改,配置好了端口和域名www.xuecheng.com 2.找到Hosts文件,将Hosts文件复制到桌面.(Windows 10系统Hosts文件路径为: ...

  8. c#特性attribute:

    特性是被编译到metadata中,  是提供给反射用的. 特性attribute:1 什么是attribute,和注释有什么区别 2 声明和使用attribute3 使用attribute完成扩展4 ...

  9. DOM心得

    一.自定义属性值两种方法的注意事项 1.用元素节点.属性(元素节点[属性])绑定的属性值不会出现在标签上. 2.用get/set/removeAttribut(,)等绑定的属性会出现在标签上.且两种方 ...

  10. PHP——explode的应用(获取字符串,拆为下拉列表)

    <?php //定义有默认值的函数 function Main3($f=5,$g=6) { echo $f*$g; } Main3(2,3); echo "<br />&q ...