Leetcode704二分查找、折半查找(Java实现)
2023-12-15 08:51:24
好久没有更新算法题,今天来写一道二分查找的题目。题目要求如下,
那么这道题的解题思路如下,我们寻找的过程是首先去访问数组的中间位置mid,如果nums[mid]大于了targe
那么说明,我们要找的数在mid的左半边,此时我们让right-1。
如果nums[mid]小于了targe
那么说明我们要找的数在mid的右,因此此时我们应该让下标left+1。
那么如果nums[mid]等于了targe
那么说明找到了将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)/2;
if(nums[mid]<target){
left=mid+1;
}else if(nums[mid]>target){
right=mid-=1;
}else{
return mid;
}
}
return -1;
}
}
其实呢二分查找的思想不难,就是有时候实现的时候会出现各种错误,那么如果有任何问题,可以在文章下方留言,博主看到了会进行答疑解释。如果觉得博主写的可以麻烦给个3连谢谢(●ˇ?ˇ●)!
文章来源:https://blog.csdn.net/Kirihara_Yukiho/article/details/134936983
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!