一、笔记部分
思路:
1.设置一个最小的字符,存储这个满足要求的,通过二分找寻最小的。看端点大于还是小于,如果大于就在左边的,如果小于就在右边。
设置最小值搞不出来,因为与最小值比较太麻烦了,能够变量用的越少越好,这样条件判断会越少。
直接索引l的方法
2.要找出大于target的第一个数,二分的时候p[mid]<=target的时候,l=mid+1,刚好大于target 一位。如果中间的数一直小于目标数,那么l就会等于数组长度,说明没有大于目标数,直接返回第一位。
注意:目标字符为边界的时候。这边根本不好赋值,很有可能设置了一个最小值'z' 结果整个数组都不会赋值给最小值变量,导致输出错误结果。
1.要用正常下标进行索引,0~n-1
2.是否取等是一门学问。
3.考虑没有大于目标值的数
二、二分法类型的高频面试题汇总:
https://blog.csdn.net/qq_40262372/article/details/112572853
三、各种类型的高频面试题汇总:
https://blog.csdn.net/qq_40262372/article/details/112556249