算法第一天
今天一共编写了三道简单算法题:
分别是第一题的二分查找
第一题我总是出现超时的错误,我看题解也没有问题,我之前一直用的是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成神之路。
共有 0 条评论