leetcode 744.寻找比目标字母大的最小字母(Java 二分查找 easy)

https://leetcode-cn.com/problems/find-smallest-letter-greater-than-target/submissions/

class Solution {
    public char nextGreatestLetter(char[] letters, char target) {
        int n=letters.length;
        int l=0,h=n-1;
        while(l<=h){
            int mid=l+(h-l)/2;
            if(letters[mid]<=target){//因为是求大于target的最小值,所以此处是小于等于。
                l=mid+1;//小于等于的时候l=mid+1。
            }else{
                h=mid-1;
            }
        }
        return l<n ? letters[l] : letters[0];//如果target比序列里所有值都大,返回第一个。
    }
}

原文地址:https://www.cnblogs.com/y1040511302/p/11575062.html

时间: 2024-11-05 20:33:28

leetcode 744.寻找比目标字母大的最小字母(Java 二分查找 easy)的相关文章

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

目录 题目描述: 示例: 解法: 题目描述: 给定一个只包含小写字母的有序数组letters 和一个目标字母 target,寻找有序数组里面比目标字母大的最小字母. 数组里字母的顺序是循环的.举个例子,如果目标字母target = 'z' 并且有序数组为 letters = ['a', 'b'],则答案返回 'a'. 示例: 输入: letters = ["c", "f", "j"] target = "a" 输出: &quo

[Swift]LeetCode744. 寻找比目标字母大的最小字母 | Find Smallest Letter Greater Than Target

Given a list of sorted characters letterscontaining 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 =

leetcode 69.x的平方根(Java 二分查找 easy)

https://leetcode-cn.com/problems/sqrtx/ 实现int sqrt(int x)函数,给定一个数字,求sqrt(x)并且保留整数部分. 二分查找,令l=1,h=x,判断l<=h,当跳出循环时,即sqrt(x)不为整数时,return h,因为跳出循环时l>h,本题要求只保留整数部分,不四舍五入. class Solution { public int mySqrt(int x) { if(x<=1) return x; int l=1,h=x; whil

大O表示法__二分查找

例如,有1~8,查找其中的一个数, 如果采用简单查找,也就是遍历方法,从1开始,最多可能需要查找8次.为什么呢?假设这个数字是8,从1开始,依次2,3,4,...,直至8,查找次数确实为8次. 采用二分方法,最多需要查找3次.为什么呢?仍然假设这个数字是8,将1~8从中间分开,假设第一次猜测为5,反馈比5大,于是第二次猜测为5~8之间的数,由于5和6相邻,于是猜测为7,反馈结果仍然比7大,第三次猜测为8,命中.假设这个数字为6,重复二分过程,第一次猜测为5,反馈比5大,第二次猜测为7,反馈比7小

Leetcode:Letter Combinations of a Phone Number 手机键盘字母映射

Letter Combinations of a Phone Number: Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given below. Input:Digit string "23" Outp

寻找大学目标及行动步骤——记ITAEM团队第二期宣讲会(2014.05.14)

·昨晚8:00-9:40,在 钟海楼03029 ,进行了ITAEM团队第二期宣讲会(第一期见第一期宣讲会总结),来参加的主要是大一学生,以信院为主,也有法学院.文学院的同学.在宣讲会中,大家都比较积极认真. 第二期宣讲会议程 (1)ITAEM团队骆宏作"有目标,才有奋斗的动力"主题分享,时间约为晚8点-8点40分: (2)丁又专作"Doing,Now(现在就行动)"演讲,时间约为晚8点45分-9点28分: (3)ITAEM团队温辉翔分享自己技术成长经验与推荐书籍,时

c++实验5--统计输出字符串中(大/小写)字母个数,数字个数及其它字符个数。

一.问题及代码 /* * 文件名称: * 作 者: 杨楚莛 * 完成日期: 2016 年 5 月 3 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分:统计输出字符串中(大/小写)字母个数,数字个数及其它字符个数. * 输入描述: * 问题描述: * 程序输出: * 问题分析: * 算法设计: */ #include<iostream> #include<cstdio> using namespace std; int main() { char str[50]; in

【leetcode 简单】 第七十题 有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假设字符串只包含小写字母. 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况? class Solution:

LeetCode:寻找重复数【287】

LeetCode:寻找重复数[287] 题目描述 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数.假设只有一个重复的整数,找出这个重复的数. 示例 1: 输入: [1,3,4,2,2] 输出: 2 示例 2: 输入: [3,1,3,4,2] 输出: 3 说明: 不能更改原数组(假设数组是只读的). 只能使用额外的 O(1) 的空间. 时间复杂度小于 O(n2) . 数组中只有一个重复的数字,但它可能不止重复出现一次.