Maximum Subarray Min-Product
给一个数组, 求里面最大的子数组中, 最小元素*子数组和的乘积. 把每个元素看做子数组的最小元素, 这样就变成求由这个元素组成的最长子数组. 用以前的https://leetcode.com/problems/next-greater-element-ii/solution/ 中的stack方法, 找到所求子数组的左界和右界.
给一个数组, 求里面最大的子数组中, 最小元素*子数组和的乘积. 把每个元素看做子数组的最小元素, 这样就变成求由这个元素组成的最长子数组. 用以前的https://leetcode.com/problems/next-greater-element-ii/solution/ 中的stack方法, 找到所求子数组的左界和右界.
给一个字符串, 里面的每个words都是打乱顺序的, 要求按照每个words的末尾数字重新排序.
给两个递减数组, 找到最远的逆序对儿. 这题因为是排序好的, 用二叉搜索找, 注意先翻转一下, 然后再用lower_bound. 而且还要减去当前i的不被考虑的情况.
给一个log, 是[出生年, 死亡年], 求哪个年代人最多. 用扫描线做,
给一个api,输入一个index, 返回元素值, 问怎么用这个api在一个不知道大小(并不是无限大)的已排序的数组上做二叉搜索. 二叉肯定要有右边的大小, 所以问题变成怎么快速找到右边的值, 用二次倍增法找
给一个二叉树, 求删除值为0并且左右两边都是nullptr的分支.
给一个n-ary的树, 求周长. 就是任意两个node之间的最长距离, 可以不经过root. 最长的路径出现在两个情况, 情况一是路径经过node, 那么就是左右两边的最长路径相加, 要不然就是一侧,就是最长路径. 所以要求出最长路径和次长路径, 然后比较一下.
给一个数组, 里面的数字出现一次或者两次, 求出现一次的数字的数组. 这题要用set很简单, 不用的话, 可以把负数当作set查重用. 当数字做为坐标的时候 用abs取下值
给一堆国际象棋的queen的坐标, 和一个king的坐标, 问那些queen可以找到king. 主要是看到queen坐标的边界是63, 然后8个方向dfs找即可.
给一个二叉树, 求任意父节点和子节点的最大差. 按个找..