zoukankan      html  css  js  c++  java
  • 744. Find Smallest Letter Greater Than Target

    Given a list of sorted characters letters containing only lowercase letters, and given a target letter target, find the smallest element in the list that is larger than the given target.

    Letters also wrap around. For example, if the target is target = 'z' and letters = ['a', 'b'], the answer is 'a'.

    Examples:

    Input:
    letters = ["c", "f", "j"]
    target = "a"
    Output: "c"
    
    Input:
    letters = ["c", "f", "j"]
    target = "c"
    Output: "f"
    
    Input:
    letters = ["c", "f", "j"]
    target = "d"
    Output: "f"
    
    Input:
    letters = ["c", "f", "j"]
    target = "g"
    Output: "j"
    
    Input:
    letters = ["c", "f", "j"]
    target = "j"
    Output: "c"
    
    Input:
    letters = ["c", "f", "j"]
    target = "k"
    Output: "c"
    

     

    Note:

    1. letters has a length in range [2, 10000].
    2. letters consists of lowercase letters, and contains at least 2 unique letters.
    3. target is a lowercase letter.

     

    二分查找,找到大于给定目标的列表中最小的元素。

     

    C++(19ms):

     1 class Solution {
     2 public:
     3     char nextGreatestLetter(vector<char>& letters, char target) {
     4         int left = 0 ;
     5         int right = letters.size()-1 ;
     6         while(left < right){
     7             int mid = left + (right-left)/2 ;
     8             if (target < letters[mid])
     9                 right = mid ;
    10             else
    11                 left = mid + 1 ;
    12         }
    13         if (target < letters[left])
    14             return letters[left] ;
    15         else
    16             return letters[0] ;
    17     }
    18 };
  • 相关阅读:
    一、linux 挂起进程 nohup
    1.C#窗体和控件
    C#笔记——5.迭代器
    C#笔记——4.集合
    设计模式——3.观察者模式
    设计模式——2.策略模式
    Code基础——1.数据结构
    设计模式——1.模板方法
    C#笔记——3.泛型
    C#笔记——2.委托
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/8098091.html
Copyright © 2011-2022 走看看