博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode375 Guess Number Higher or Lower II
阅读量:4317 次
发布时间:2019-06-06

本文共 1463 字,大约阅读时间需要 4 分钟。

思路:

dp。

实现:

1 class Solution  2 { 3 public: 4     int getMoneyAmount(int n)  5     { 6         int dp[n + 1][n + 1]; 7         memset(dp, 0x3f, sizeof dp); 8         for (int i = 0; i <= n; i++) 9             dp[i][i] = 0;10         for (int i = n - 1; i >= 1; i--)11         {12             for (int j = i + 1; j <= n; j++)13             {14                 for (int k = i; k <= j; k++)15                 {16                     dp[i][j] = min(dp[i][j], k + 17                                    max(i > k - 1 ? 0 : dp[i][k - 1], 18                                        k + 1 > j ? 0 : dp[k + 1][j]));19                 }20             }21         }22         return dp[1][n];23     }24 };

 实现2:

1 class Solution 2 { 3 public: 4     int dfs(int l, int r, vector
> & dp) 5 { 6 if (l == r) return 0; 7 if (dp[l][r] != -1) return dp[l][r]; 8 int ans = 0x3f3f3f3f; 9 ans = min(ans, l + dfs(l + 1, r, dp));10 ans = min(ans, r + dfs(l, r - 1, dp));11 for (int i = l + 1; i <= r - 1; i++)12 {13 ans = min(ans, max(dfs(l, i - 1, dp), dfs(i + 1, r, dp)) + i);14 }15 return dp[l][r] = ans;16 }17 int getMoneyAmount(int n) 18 {19 vector
> dp(n + 1, vector
(n + 1, -1));20 return dfs(1, n, dp);21 }22 };

 

转载于:https://www.cnblogs.com/wangyiming/p/7450232.html

你可能感兴趣的文章
重装系统时启动失败,引导信息有错误,修复磁盘的主引导记录MBR方法
查看>>
字符数组 字符指针
查看>>
Jedis的使用
查看>>
文献笔记(一)
查看>>
Linux(CentOS6.5)下修改Nginx初始化配置
查看>>
windows 重写调试输出
查看>>
反向代理服务器(Reverse Proxy)
查看>>
Android全屏
查看>>
HTML 标签。
查看>>
[bzoj2783][JLOI2012]树_树的遍历
查看>>
2018.10.20 bzoj1068: [SCOI2007]压缩(区间dp)
查看>>
Perl的IO操作(2):更多文件句柄模式
查看>>
由拖库攻击谈口令字段的加密策略
查看>>
Alpha 冲刺 (4/10)
查看>>
并发编程之线程池进程池
查看>>
初始化 Flask 虚拟环境 命令
查看>>
脚本简介jQuery微信开放平台注册表单
查看>>
将PHP数组输出为HTML表格
查看>>
Java中的线程Thread方法之---suspend()和resume() 分类: ...
查看>>
经典排序算法回顾:选择排序,快速排序
查看>>