Guess Number Higher or Lower && 九章二分法模板
2016-07-25 11:07
435 查看
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
Example:
Show Company Tags
Show Tags
Show Similar Problems
binary search
九章二分法模板
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:
n = 10, I pick 6. Return 6.
Show Company Tags
Show Tags
Show Similar Problems
binary search
/* 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); */ public class Solution extends GuessGame { public int guessNumber(int n) { int start = 1; int end = n; int res; while(start<end) { int mid = start + (end-start)/2; if(guess(mid)==0) { return mid; } else if(guess(mid)==-1) { end = mid-1; } else { start = mid+1; } } if(guess(start)==0) return start; return end; } }
九章二分法模板
主页 课程 讲座 问答 面经 LeetCode答案 FAQ 注册 登录 Binary Search 当前位置 首页 LeetCode 答案查询 / LintCode 答案查询 查看详情 http://www.lintcode.com/problem/binary-search/ Binary search is a famous question in algorithm. For a given sorted array (ascending order) and a target number, find the first index of this number in O(log n) time complexity. If the target number does not exist in the array, return -1. Example If the array is [1, 2, 3, 3, 4, 5, 10], for given target 3, return 2. Java C++ Python /** * 本代码由九章算法编辑提供。没有版权欢迎转发。 * - 九章算法致力于帮助更多中国人找到好的工作,教师团队均来自硅谷和国内的一线大公司在职工程师。 * - 现有的面试培训课程包括:九章算法班,系统设计班,九章强化班,Java入门与基础算法班, * - 更多详情请见官方网站:http://www.jiuzhang.com/ */ // version 1: with jiuzhang template public class Solution { /** * @param A an integer array sorted in ascending order * @param target an integer * @return an integer */ public int findPosition(int[] nums, int target) { if (nums == null || nums.length == 0) { return -1; } int start = 0, end = nums.length - 1; while (start + 1 < end) { int mid = start + (end - start) / 2; if (nums[mid] == target) { return mid; } else if (nums[mid] < target) { start = mid; } else { end = mid; } } if (nums[start] == target) { return start; } if (nums[end] == target) { return end; } return -1; } } // version 2: without jiuzhang template public class Solution { /** * @param A an integer array sorted in ascending order * @param target an integer * @return an integer */ public int findPosition(int[] nums, int target) { if (nums == null || nums.length == 0) { return -1; } int start = 0, end = nums.length - 1; while (start < end) { int mid = start + (end - start) / 2; if (nums[mid] == target) { return mid; } else if (nums[mid] < target) { start = mid + 1; } else { end = mid - 1; } } if (nums[start] == target) { return start; } return -1; } } © Jiu Zhang 2013-2016. All rights reserved.
相关文章推荐
- Camstar Portal modeling user guid --设置本地时间
- poj 3625 Building Roads(最小生成树)
- jeasyui插件扩展datagrid-filter的改善
- druid简单详解
- UITableView Class Reference
- Confluent
- MUI布局简介
- 判断鼠标或者手指是否点击在UI上(用于应对不能点击UI的情况)
- UITableview Plain风格下 SectionHeader悬浮问题
- 在JS中用EL表达式访问request作用域里面的值得问题
- maven的pom文件 Project build error: Unresolveable build extension: Plugin org.sonatype.plugins:nexus-st
- String+ String.Concat String.Format StringBuilder 之间的性能测试
- servlet request请求对象常用方法总结
- HDU 5749 Colmerauer(单调栈)
- 解决SVN上UUID不匹配问题
- @Value取不到值
- ios的手势操作之UIGestureRecognizer浅析
- 【HDU5749 BestCoder Round 84C】【ST-RMQ?NO!暴力跳法or单调栈法 + 贡献思维】Colmerauer 所有子矩阵size乘鞍点权值和
- Builder 构建模式
- vue-router