当前位置: 首页 > news >正文

福州仿站定制模板建站wordpress login 插件

福州仿站定制模板建站,wordpress login 插件,wordpress报名收费,wordpress连不上mysql8涉及知识点 暴力、二分查找算法、单指针 题目 给你 k 枚相同的鸡蛋#xff0c;并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f #xff0c;满足 0 f n #xff0c;任何从 高于 f 的楼层落下的鸡蛋都会碎#xff0c;从 f 楼层或比它低的…涉及知识点 暴力、二分查找算法、单指针 题目 给你 k 枚相同的鸡蛋并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f 满足 0 f n 任何从 高于 f 的楼层落下的鸡蛋都会碎从 f 楼层或比它低的楼层落下的鸡蛋都不会破。 每次操作你可以取一枚没有碎的鸡蛋并把它从任一楼层 x 扔下满足 1 x n。如果鸡蛋碎了你就不能再次使用它。如果某枚鸡蛋扔下后没有摔碎则可以在之后的操作中 重复使用 这枚鸡蛋。 请你计算并返回要确定 f 确切的值 的 最小操作次数 是多少 示例 1 输入k 1, n 2 输出2 解释 鸡蛋从 1 楼掉落。如果它碎了肯定能得出 f 0 。 否则鸡蛋从 2 楼掉落。如果它碎了肯定能得出 f 1 。 如果它没碎那么肯定能得出 f 2 。 因此在最坏的情况下我们需要移动 2 次以确定 f 是多少。 示例 2 输入k 2, n 6 输出3 示例 3 输入k 3, n 14 输出4 提示 1 k 100 1 n 104 暴力解法 分析 f 取[0,n]共n1可能 pre[i]表示i种可能 (j-1)个鸡蛋需要多少回合排除 dp[i]表示i种可能j个鸡蛋 需要多少回合排除 只有一个鸡蛋则测试最低的的楼层如果破了就得到答案没破就排除一种可能。当只一种可能时不需要尝试故j为0时dp[i]i-1; 假设有j(j2)个鸡蛋假设在某层楼扔下如果没破有x种可能破了有i-x种可能。 则dp[i] 1 max(dp[x],pre[x-1])x取值[1,i-1] 笨办法枚举x。 时间复杂度 时间复杂度O(knn),超时。 代码 class Solution { public: int superEggDrop(int k, int n) { vector pre(n 2);//f 取[0,n)共n1可能 pre[i]表示i种可能 j个鸡蛋需要多少回合排除 for (int i 0; i n1; i) { pre[i] i - 1; } for (int j 1; j k; j) { vector dp(n 2,1000*100); dp[1] 0; for (int i 2; i n1; i) { for (int x 1; x i; x) { dp[i] min(dp[i], 1 max(dp[x], pre[i - x])); } } pre.swap(dp); } return pre.back(); } }; 二分 分析 重点考虑max(dp[x], pre[i - x])); 情况一dp[x] pre[i-x] x1和x2是合法x且x1x2如则x1被淘汰 证明因为pre和dp都是单调增加或不变 。 x1x2 i-x1 i-x2 pre[i-x1]pre[i-x2] 情况二dp[x] pre[i-x] 同理只需要考虑最小的x 情况一最大的x是xLeft,情况二最小的x是xRight则xRightxLeft1 故只需求xRight注意:xRight可能不存在 情况二符合条件多个符合条件返回第一个用左开右闭空间二分。 时间复杂度 O(nklogn)。枚举鸡蛋数时间复杂度O(k)枚举可能数时间复杂度O(n)计算xRight时间复杂度O(logn)。 代码 class Solution { public:int superEggDrop(int k, int n) {vectorint pre(n 2);//f 取[0,n)共n1可能 pre[i]表示i种可能 j个鸡蛋需要多少回合排除for (int i 0; i n 1; i){pre[i] i - 1;}for (int j 1; j k; j){vectorint dp(n 2, 1000 * 100);dp[0] dp[1] 0;for (int i 2; i n 1; i){int left 0, right i ;while (right - left 1){const auto mid left (right - left) / 2;if (dp[mid] pre[i - mid]){right mid;}else{left mid;}}if (right i ){auto x right;dp[i] min(dp[i], 1 max(dp[x], pre[i - x]));}if (right 2){auto x right-1;dp[i] min(dp[i], 1 max(dp[x], pre[i - x]));}}pre.swap(dp);}return pre.back();} };单指针 随着i的增加xRight只会增加或变大。每个jxRight的时间复杂度是O(n)总时间复杂度是O(kn)。 测试用例 template void Assert(const T t1, const T t2) { assert(t1 t2); } template void Assert(const vector v1, const vector v2) { if (v1.size() ! v2.size()) { assert(false); return; } for (int i 0; i v1.size(); i) { Assert(v1[i], v2[i]); } } int main() { int res 0; { res Solution().superEggDrop(2, 6); Assert(3, res); } { res Solution().superEggDrop(3, 14); Assert(4, res); } { res Solution().superEggDrop(10, 100); Assert(7, res); } { res Solution().superEggDrop(9, 89); Assert(7, res); } { res Solution().superEggDrop(100, 10000); Assert(14, res); } //CConsole::Out(res);} 2023年1月7号版 class Solution { public: int superEggDrop(int k, int n) { int iMaxStep MaxStep(k,n); vector preDp(iMaxStep 1); int iMinSetp INT_MAX; for (int i 0; i iMaxStep; i) { preDp[i] i1; if (i 1 -1 n) { iMinSetp i; } } while (–k) { vector dp(iMaxStep 1); dp[0] 1; for (int i 1; i iMaxStep; i) { const int tmp dp[i - 1] preDp[i - 1]; dp[i] tmp; if (tmp n) { iMinSetp i; break; } } preDp.swap(dp); } return iMinSetp; } int MaxStep(int k, int n)const { int iOpeNum 0; int iCan 1;//iOpeNum回合可以判定胡楼层 for (int i 2; i 10000; i) { for (int j 0; j k; j) { if (iCan n) { return iOpeNum; } iCan / (i - 1); iCan * i; iOpeNum; } } return 100; } }; 2023年1月8号版 枚举各回合能判断多少种可能。 class Solution{ public: int superEggDrop(int k, int n) { //dp[j] 表示iStep回合j个鸡蛋能表示的可能 vector pre(k 1,2); pre[0] 1; if (2 n) { return 1; } for (int iStep 2; iStep 20000; iStep) { vector dp(k 1, 1); for (int j 1; j k; j) { dp[j] pre[j] pre[j - 1]; if (dp[j] n) { return iStep; } } pre.swap(dp); } return -1; } }; 扩展阅读 视频课程 有效学习明确的目标 及时的反馈 拉伸区难度合适可以先学简单的课程请移步CSDN学院听白银讲师也就是鄙人的讲解。 https://edu.csdn.net/course/detail/38771 如何你想快 速形成战斗了为老板分忧请学习C#入职培训、C入职培训等课程 https://edu.csdn.net/lecturer/6176 相关下载 想高屋建瓴的学习算法请下载《闻缺陷则喜算法册》doc版 https://download.csdn.net/download/he_zhidan/88348653 洒家想对大家说的话闻缺陷则喜是一个美好的愿望早发现问题早修改问题给老板节约钱。墨家名称的来源有所得以墨记之。如果程序是一条龙那算法就是他的是睛 测试环境 操作系统win7 开发环境 VS2019 C17 或者 操作系统win10 开发环境 VS2022 C17
http://www.huolong8.cn/news/260618/

相关文章:

  • 站长seo综合查询工具绵阳的网站建设
  • 做网站要会编程么类qq留言网站建设
  • 丽水北京网站建设福州网站建设哪个好
  • 商标查询网站怎么做wordpress 取消自豪
  • 广东做淘宝的都在哪里网站重庆房产信息网官网
  • android开发环境搭建seo网络营销公司
  • 广东网页制作网站七星迪曼网站建设
  • 哪个找房网站好20平米的办公室怎样装修
  • 南京网站优化建站广州电子软件开发
  • 重庆seo整站优化网站百度指数分析
  • 做装修的网站网页设计图片水平居中代码
  • 网站开发怎么去接单山东高端网站建设服务商
  • 如何自己做摄影网站杭州的网站建设
  • rp网站做多大行政单位网站信息建设政策
  • 建立网站主机如何开拓海外市场
  • p2p网站建设公司排名wordpress手机展示
  • 给别人做网站必须有icpwordpress 转app
  • 网站建设项目说明书模板淮安房产网
  • 科技网站 网站建设做影视网站用的封面
  • 深圳网站建设网站运营环保产品企业网站建设
  • 网站建设工作分解结构词典企业咨询管理有限公司
  • 做推广自己找网站网站评价及优化分析报告
  • 企业网站制作商php网站开发教程网
  • 电子商务网站推广计划wordpress海报式分享
  • 河南住房与城乡建设厅网站如何做单页网站
  • 网站设计公司简介企业网站开发环境
  • 一诺千金 网站建设广东广州网点快速网站建设
  • 网站建设的整体设计流程常用的网站开发工具
  • 福州做网站建设软件商店哪个好用
  • 网站数据库维护都是做什么南宁网站建设设计制作