本篇文章是对LeetCode题目 69.x的平方根的总结,主要总结了使用二分法时中位数mid的选取方法。
69. x 的平方根
题目类型
二分法
做题总结
- 注意作乘法时一定要考虑数值是否过大导致溢出,从而选取合适大小的数据类型。
- 还要注意这里二分法取的是右中位数,即
mid=right - (right - left) / 2
或者如liweiwei1419的写法:left + (right - left + 1) / 2
,可以看他的题解:
链接:https://leetcode-cn.com/problems/sqrtx/solution/er-fen-cha-zhao-niu-dun-fa-python-dai-ma-by-liweiw/
《用「排除法」(减治思想)写二分查找问题、与其它二分查找模板的比较》链接:https://leetcode-cn.com/problems/search-insert-position/solution/te-bie-hao-yong-de-er-fen-cha-fa-fa-mo-ban-python-/ - 关于什么时候用左中位数什么时候用右中位数:试!如果在迭代的过程中发生区间无法收缩的情况,就换用另一种中位数取法。这种边界无法进一步收缩的情况出现在边界内只有2个数的时候。