获取网站漏洞后下一步怎么做,购物网站图片素材,网站开发市场 知乎,群晖 wordpress端口二分查找. - 备战技术面试#xff1f;力扣提供海量技术面试资源#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/binary-search/
二分查找#xff0c;其实是双指针的一种特殊情况#xff0c;但是时间复杂度极低#…二分查找. - 备战技术面试力扣提供海量技术面试资源帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/binary-search/
二分查找其实是双指针的一种特殊情况但是时间复杂度极低仅为(log)但是二分查找对于数组的要求必须是有序数组才可以。 我们定义一个左指针和右指针同时把mid设置程left和right的中间值
先让mid处的数字和target相比较如果是 mid target说明需要找的值比mid要小区间在left到mid之间此时把right指针换到mid的左边这样就能完成对一般的筛选。mid target则是一样的只不过翻了过来把left指针换到mid的右边
当mid处的值和target相等的时候返回mid处的值。
最终当left right时停止循环。如停止循环则说明没有想要找的值。
另外有一个小细节
在确定mid的值的时候为了防止数字太大溢出不能直接用left right再除以二这样的方式而最好用 left (right - left) / 2 这样的方式只要右指针不超过最大值那么mid的值就是有效的。
代码
class Solution {public int search(int[] nums, int target) {int left 0;int right nums.length - 1;while(left right){int mid left (right - left) / 2;if(nums[mid] target){left mid 1;}else if(nums[mid] target){right mid - 1;}else{return mid;}}return -1;}
}