算法第一天

今天一共编写了三道简单算法题:
分别是第一题的二分查找
第一题我总是出现超时的错误,我看题解也没有问题,我之前一直用的是low=mid++; 和high=mid–;而当用high=mid+1这种的时候就不会超时。不是很理解为什么超时,希望后续可以想通。
第二题也是二分查找,只是换了一种说法

而且leetcode容易出现超时的现象,我以前的折半查找一直用的是**(low+high)/2;就很容易出现超时的现象,现在学到了一种新的折半,即int mid = low + (high - low) / 2;**这样就不会出现超时了。

对于为什么不能用(low+high)/2,我已经知道了,因为使用(high+low)/2可能导致溢出,比如high和low加起来超过int 能表示的最大的正整数时,会变为负数,从而导致计算错误。

第三题是也是对折半查找的运用:

总结:对于什么时候要用l

算法第一天最先出现在Python成神之路

版权声明:
作者:感冒的梵高
链接:https://www.techfm.club/p/14049.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>