leetcode 374&375. Guess Number Higher or Lower
来源:互联网 发布:如何查看mac os版本 编辑:程序博客网 时间:2024/06/12 01:32
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:n = 10, I pick 6.Return 6.
374比较简单,就是一个二分搜索
public class Solution extends GuessGame { public int guessNumber(int n) { int low = 1; int high = n; int mid = 0; while(low <= high){ mid = low + (high - low)/2; int res = guess(mid); if(res==0){ return mid; }else if(res>0){ low = mid+1; }else{ high = mid-1; } } return low; }}
375二分搜索不一定是最好的结果,所以不能采用二分搜索来求。
采用动态规划
dp[i][j]表示从i~j中的最少花费
对于 x 属于i~j,如果是x,那么花费为x + max(dp[i][x-1], dp[x+1][j])
在最小化这个花费即为dp[i][j]
public class Solution { public int getMoneyAmount(int n) { if(n < 2) return 0; int[][] dp = new int[n+1][n+1]; return helper(dp, 1, n); } public int helper(int[][] dp, int l, int h){ if(l >= h) return 0; if(dp[l][h]!=0) return dp[l][h]; int res = Integer.MAX_VALUE; for(int i=l; i <=h; i++){ int t = i + Math.max(helper(dp, l, i-1), helper(dp, i+1, h)); res = Math.min(res, t); } dp[l][h] = res; return res; }}
阅读全文
0 0
- LeetCode[374] Guess Number Higher or Lower
- LeetCode 374: Guess Number Higher or Lower
- LeetCode 374 Guess Number Higher or Lower
- LeetCode 374 Guess Number Higher or Lower
- leetcode 374 Guess Number Higher or Lower
- LeetCode 374:Guess Number Higher or Lower
- Leetcode 374 Guess Number Higher or Lower
- Leetcode Guess Number Higher or Lower 374
- LeetCode 374 Guess Number Higher or Lower
- LeetCode-374&375.Guess Number Higher or Lower
- leetcode 374&375. Guess Number Higher or Lower
- [LeetCode]374. Guess Number Higher or Lower【&375. Guess Number Higher or Lower II】
- LeetCode 374. Guess Number Higher or Lower
- [leetcode] 374. Guess Number Higher or Lower
- [LeetCode] Guess Number Higher or Lower
- LeetCode:Guess Number Higher or Lower
- leetcode之Guess Number Higher or Lower
- LeetCode 374. Guess Number Higher or Lower
- 1009 Enigma
- 计蒜客 百度地图导航
- java static 关键字总结
- ubuntu busybox-1.7.0编译
- SylixOS字符设备驱动框架
- leetcode 374&375. Guess Number Higher or Lower
- FZU2203:单纵大法好(二分)
- PAT 甲级 1018. Public Bike Management
- pprime-section1.5
- JAVA 对象引用,以及对象赋值
- 朴素贝叶斯算法--python实现
- Smart-api开源api接口管理平台
- 最小二乘法的新体(接上篇)
- VC编程中利用ADO方式访问SQL Server 2012数据库(2)