zoukankan      html  css  js  c++  java
  • leetcode887 鸡蛋掉落

    这题朴素的O(nk n) 的记忆化搜索方法是很容易的,

    但是关键就是将其中一层n的循环有效的优化成logn。

    原始的情况是对

    [t in [1,n] ]

    的每一个(t),计算

    [min(max(f1(t), f2(t))) ]

    想到这直接的想法肯定就是来个循环,遍历每一个关于(t)(f1)(f2),最后找到结果。

    • 但是这题巧妙的地方就在于,(f1)(f2)是有规律的,一个单调递增,另一个单调递减,如下图所示

    f1f2

    他们两个求最大最小,必然是在二者之差绝对值最小的时候取到。

    而二者之差,是单调的,于是二分搜索就可以用了,至此就完成了一个O(nk logn)的解法,直接AC

  • 相关阅读:
    动态数组arraylist的使用
    第一次
    layui.mobile.css
    index.html
    Ansible部署配置
    微服务项目配置文件
    镜像挂载
    网卡设置
    获取内存信息
    超时方法
  • 原文地址:https://www.cnblogs.com/agnes6/p/13896097.html
Copyright © 2011-2022 走看看