LeetCode_374. Guess Number Higher or Lower
374. Guess Number Higher or Lower
We are playing the Guess Game. The game is as follows:
I pick a number from 1 to n. You have to guess which number I picked.
Every time you guess wrong, I'll tell you whether the number is higher or lower.
You call a pre-defined API guess(int num)
which returns 3 possible results (-1
, 1
, or 0
):
-1 : My number is lower
1 : My number is higher
0 : Congrats! You got it!
Example :
Input: n = 10, pick = 6
Output: 6
package leetcode.easy;
/* The guess API is defined in the parent class GuessGame.
@param num, your guess
@return -1 if my number is lower, 1 if my number is higher, otherwise return 0
int guess(int num); */ class GuessGame {
public int guess(int num) {
if (6 > num) {
return -1;
} else if (6 == num) {
return 0;
} else {
return 1;
}
}
} public class GuessNumberHigherOrLower extends GuessGame {
public int guessNumber1(int n) {
for (int i = 1; i < n; i++) {
if (guess(i) == 0) {
return i;
}
}
return n;
} public int guessNumber2(int n) {
int low = 1;
int high = n;
while (low <= high) {
int mid = low + (high - low) / 2;
int res = guess(mid);
if (res == 0) {
return mid;
} else if (res < 0) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return -1;
} public int guessNumber3(int n) {
int low = 1;
int high = n;
while (low <= high) {
int mid1 = low + (high - low) / 3;
int mid2 = high - (high - low) / 3;
int res1 = guess(mid1);
int res2 = guess(mid2);
if (res1 == 0) {
return mid1;
}
if (res2 == 0) {
return mid2;
} else if (res1 < 0) {
high = mid1 - 1;
} else if (res2 > 0) {
low = mid2 + 1;
} else {
low = mid1 + 1;
high = mid2 - 1;
}
}
return -1;
} @org.junit.Test
public void test() {
GuessNumberHigherOrLower guessNumberHigherOrLower = new GuessNumberHigherOrLower();
System.out.println(guessNumberHigherOrLower.guessNumber1(10));
System.out.println(guessNumberHigherOrLower.guessNumber2(10));
System.out.println(guessNumberHigherOrLower.guessNumber3(10));
}
}
LeetCode_374. Guess Number Higher or Lower的更多相关文章
- [LeetCode] Guess Number Higher or Lower II 猜数字大小之二
We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...
- [LeetCode] Guess Number Higher or Lower 猜数字大小
We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...
- 374&375. Guess Number Higher or Lower 1&2
做leetcode的题 We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You ...
- 不一样的猜数字游戏 — leetcode 375. Guess Number Higher or Lower II
好久没切 leetcode 的题了,静下心来切了道,这道题比较有意思,和大家分享下. 我把它叫做 "不一样的猜数字游戏",我们先来看看传统的猜数字游戏,Guess Number H ...
- Guess Number Higher or Lower II--困惑
今天,试着做了一下LeetCode OJ上面的第375道题:Guess Number Higher or Lower II 原题链接:https://leetcode.com/problems/gue ...
- 每天一道LeetCode--374. Guess Number Higher or Lower
We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...
- Leetcode之二分法专题-374. 猜数字大小(374. Guess Number Higher or Lower)
Leetcode之二分法专题-374. 猜数字大小(374. Guess Number Higher or Lower) 我们正在玩一个猜数字游戏. 游戏规则如下:我从 1 到 n 选择一个数字. 你 ...
- [LeetCode] 375. Guess Number Higher or Lower II 猜数字大小之二
We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...
- [LeetCode] 374. Guess Number Higher or Lower 猜数字大小
We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...
随机推荐
- identifier of an instance of com.xxx.model.system.xxxObject was altered from 1765 to 1766
Caused by: org.hibernate.HibernateException: identifier of an instance of com.xxx.model.system.xxxOb ...
- source insight parse link
source insight parse link \([a-zA-Z_]*\.[chCH]\) ([^)]*) line \([0-9][0-9]*\)
- 删除tppabs,href="javascript:if(confirm)...",、/*tpa=http://...
扒网站,据说是web从业人员的必备技能; 废话不多,下面应该是你想要的; 1: tppabs="h[^"]*" 2: href="javascript\:i ...
- pcl-设置多线段宽度和颜色
显示点云有使用vtk的,有使用 ros 中riz ?库的,使用pcl显示点云数据比较方便,但是对于一些模型形状只能固定特定的效果,比如说直线段,只能绘制点到点两点之间的线段.但是项目需要绘制点1到点2 ...
- 原创:从海量数据中查找出前k个最小或最大值的算法(java)
现在有这么一道题目:要求从多个的数据中查找出前K个最小或最大值 分析:有多种方案可以实现.一.最容易想到的是先对数据快速排序,然后输出前k个数字. 二.先定义容量为k的数组,从源数据中取出前k个填 ...
- 零基础Python接口测试教程
目录 一.Python基础 Python简介.环境搭建及包管理 Python基本语法 基本数据类型(6种) 条件/循环 文件读写(文本文件) 函数/类 模块/包 常见算法 二.接口测试快速实践 简单接 ...
- PHP rtrim() 函数
code <!DOCTYPE html> <html> <body> <?php $str = "Hello World!"; echo ...
- mysql 统计查询出来的数目
select count(*) as dd from users;
- 小程序的基本原生js使用
1.点击事件 <a data-current="{{setting.current}}" bindtap="clickcurrent" style=&qu ...
- 部署owa预览服务
b部署owa预览服务 一.前言 1.1 服务器需求 转换文档需要两台服务器,一台为转换server,另外一台为域控server.(安装office web apps的服务器必须加域才能安装成功,如果没 ...