相信很多人都读不懂题目,为什么最后返回6
原来是有个guess的api(接口) ,我们通过自己的程序调用,程序如下:
public static int guess(int n){
int num=10;
//int num=6;
if(n==num)
return 0;
else if(n<num)
return 1;
else
return -1;
}
二分法实现 :
#region 374. 猜数字大小
private static int GetTarget(int n)
{
if (guess(1) == 0)
return 1;
else if (guess(n) == 0)
return n;
else
{
int left = 1, right = n, mid;
while (left<right)
{
mid = (left + right) / 2;
if (guess(mid) == 0)
return mid;
else if (guess(mid) == 1)
left = mid + 1;
else
right = mid + 1;
}
return left;
}
}
#endregion
调用一下:
static void Main(string[] args)
{
int num = 6;
int res = GetTarget(num);
Console.WriteLine(res);
Console.ReadKey();
}
总结: 面对不同模式经验值+1
二分法+1
心路历程:
不提也罢
版权声明:本文为us2019原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。