网站建设基础内容,响应式网站建设哪里有,青岛网站推广优化公司,用户网站建设java数据结构与算法刷题目录#xff08;剑指Offer、LeetCode、ACM#xff09;-----主目录-----持续更新(进不去说明我没写完)#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 二分查找 二分查找
解题思路#xff1a;时间复杂度O( l o g 2 …java数据结构与算法刷题目录剑指Offer、LeetCode、ACM-----主目录-----持续更新(进不去说明我没写完)https://blog.csdn.net/grd_java/article/details/123063846 文章目录 二分查找 二分查找
解题思路时间复杂度O( l o g 2 n log_2n log2n)空间复杂度O( 1 1 1) 二分查找如果当前mid字符target,则left mid1也就是去mid右边找因为我们要找一个比target大的字符当我们midtarget则right mid。也就是去mid左边找试图找一个更小的符合条件的。因为我们要找一个字符不光比target大还要是所有比target大的字符中最小的 代码 class Solution {public char nextGreatestLetter(char[] letters, char target) {int n letters.length;int left 0,right n-1;//左右边界if(target letters[right]) return letters[0];//根据题意如果不存在比target大的字符返回letters[0]int mid 0;//二分查找while(leftright){mid left (right - left)/2;//如果当前mid比target小或相等得去mid右边找因为我们要找比target大的if(letters[mid]target) left mid1;//如果mid比target大去左边找因为我们要找比target大但是大的里面挑一个最小的else right mid;}return letters[left];//返回找到的比target大的区间中最小的哪个left}
}