题目 思路 备注
    杨辉三角 边缘是1,内部每个元素都是上边两个元素之和 f[i][j] = (j==0 || j==i) ? 1: f[i-1][j-1]+f[i-1][j];
    逆波兰表达式求值 逆波兰表达式即是后缀表达式,可以用栈直接求值 image.png
    多数元素 对拼消耗(摩尔投票法) image.png
    任务调度器 示例: [A,b,b,A,b,b,A], 三个高频任务A,假设同类型需要间隔2个单位,则前(3-1)个A每个都要搭配一个非A或待命单位(假设是b),最后加一个单独的A,即是总时间: [A,b,b]2+A = (n+1)(m-1)+1.
    - 不过要注意的时,可能存在多个频率相同且是最大的元素, 且x个任务至少需要x个时间单位,即结果须>=x
    image.png
    根据身高重建队列 整体不难,关键只有两行代码,一是排序,二是插入
    1. 先排序数组,按身高h降序,按个数k升序排一下序
    1. 从最高的h开始选,依次插入到列表中对应的第k位置

    为什么这样是对的呢?
    - 因为每次插的是剩余元素中h最大的值,要求是前方比其高的有k个人,而比其高的人都已经在列表中了,那它必然应插在第k个位置,才能刚好满足条件
    | image.png | | | | | | | | | | | | | | | | | | | | | | | | |