374. 猜数字大小

#374. 猜数字大小

难度:简单 考察:二分查找
题目描述
在这里插入图片描述
解题思路
题目有点说的不清楚,总之:
guess返回-1,如果猜的数字比实际选择的数字大
1,如果猜的数字比实际选择的大

1、二分递归

public int guessNumber(int n) {        
	return guessBinary(1,n);    
}    
public int guessBinary(int low,int high){        
	int mid = low + (high - low)/2;        
	if(guess(mid) == -1){            
		return guessBinary(low,mid-1);        
	}        
	else if(guess(mid) == 1){            
		return guessBinary(mid+1,high);        
	}        
	else            
		return mid;    
}

在这里插入图片描述

2、不用递归,普通二分查找

public int guessNumber(int n) {        
	int low = 1,high = n;           
	while(low <= high) {               
		int mid = low + (high - low)/2;               
		if(guess(mid) == -1)                   
			high = mid - 1;               
		else if (guess(mid) == 1) {                   
			low = mid + 1;            
		}               
		else {                   
			return mid;            
		}           
	}           
	return n;    
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值