对于704, 二分查找中的,左中位数,和右中位数。我到底选哪一个?
如何才能避免死循环。
一个模板,好,就要好记;否则,没有了
def cuthalf(left , right):
while left < right:
mid= left + right >> 1
if (排除逻辑):
left = mid + 1 #左手冲上去
else:
right = mid
check(right)
#你是左撇子,就要先用左手,一用左手,左手就必须变化;
# 右手,叉着腰;你能你上呀!
def cuthalf(left , right):
while left < right:
mid=left + right + 1 >> 1
if (排除逻辑):
right = mid - 1 #右手先
else:
left = mid
check(right)
#你是右撇子,伸手拿钱,还是拿筷子吧,就会先用右手,右手必须变化;
#左手,哈哈,幸亏在老板那里,告了它,否则,它天天躺着。
#不要告状,老板只是想知道你的胸怀有多大,可以装下多少委屈。
- left <right ,没有 =
- 位运算
- 排除逻辑先,确定左手,还是右手
- left==right ,check
- 只有两个分支。
别人有很多神奇的代码,你能装入你的口袋么?
网友评论