二分查找解题思路以及归错 发表于 2023-04-10 分类于 代码随想录 阅读次数: 1.[left,right]1234567891011121314151617left=0;right=num.size()-1; //-1是因为]的原因while(left<=right) //为什么= 因为[1,1]合法{ middle=(left+right)/2; if(num[middle]>target) { right=middle-1; //为什么是middle-1 因为']'右区间去了闭,所以要减一避免重复 } else if(num[middle]<target){ left=middle+1; //为什么+1,和上面同理 } else{ return middle; }}2.[left,right)123456789101112131415left=0;right=num.size(); //)的原因while(left<right) //为什么是<,因为[),[1,1)开区间的取不到{ middle=(left+right)/2; if (num[middle]>target){ right=middle; //为什么不加1,因为)开区间取不到 } else if(num[middle]<target){ left=middle+1; //闭区间取得到,所以+1 } else{ return middle; }}题目模板题704. 二分查找其他:35 搜索插入位置-------------本文结束感谢您的阅读-------------老板你好,讨口饭吃打赏微信支付支付宝本文作者: 毛本文链接: http://example.com/2023/04/10/二分查找解题思路以及归错/版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!