Maximum Population Year
给一个log, 是[出生年, 死亡年], 求哪个年代人最多. 用扫描线做,
给一个log, 是[出生年, 死亡年], 求哪个年代人最多. 用扫描线做,
给一个api,输入一个index, 返回元素值, 问怎么用这个api在一个不知道大小(并不是无限大)的已排序的数组上做二叉搜索. 二叉肯定要有右边的大小, 所以问题变成怎么快速找到右边的值, 用二次倍增法找
给一个二叉树, 求删除值为0并且左右两边都是nullptr的分支.
给一个n-ary的树, 求周长. 就是任意两个node之间的最长距离, 可以不经过root. 最长的路径出现在两个情况, 情况一是路径经过node, 那么就是左右两边的最长路径相加, 要不然就是一侧,就是最长路径. 所以要求出最长路径和次长路径, 然后比较一下.
给一个数组, 里面的数字出现一次或者两次, 求出现一次的数字的数组. 这题要用set很简单, 不用的话, 可以把负数当作set查重用. 当数字做为坐标的时候 用abs取下值
给一堆国际象棋的queen的坐标, 和一个king的坐标, 问那些queen可以找到king. 主要是看到queen坐标的边界是63, 然后8个方向dfs找即可.
给一个二叉树, 求任意父节点和子节点的最大差. 按个找..
给两个bst, 然后看是不是能做two sum. 先用inorder变成array, 然后做two sum.
给一个数组和一个数字k, 求数组中k大小的subarray的不同的数字的个数. 用map当滑窗计算一下
给一个string, 里面有偶数位的字符和奇数位的数字组成, 给一个方法decode这个string, 是用字符后的数字位个字符代替数字位. 求decoded string.