leetcode744. 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”

做法:一次遍历,记录最小字符和比target大一点的最小字符。

class Solution {
    public char nextGreatestLetter(char[] letters, char target) {  
    char res=' ';
    char min='z';
    int least=30;
    for(int i=0;i<letters.length;i++){
        if((letters[i]-target)>0&&(letters[i]-target)<least)   {
          least= letters[i]-target;
          res=letters[i];
        }
       if((letters[i]-min)<=0  ) min=letters[i];       
    }    
  return res==' '?min:res;        
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值