Delete Columns to Make Sorted
给一个数组, 里面是同样长度的string, 求这个string组成的grid是否对应的每列都是字典序的
给一个数组, 里面是同样长度的string, 求这个string组成的grid是否对应的每列都是字典序的
给一个DAG(有向无圈图), 求从0到n-1的所有路径. 直接dfs
给一个二叉树, 里面有random pointer, 求deep copy这个二叉树.
给一个postfix的表达式数, 让设计一个Node, 里面有evaluate方法, 可以算出答案. 这个题是偏设计, 所以一般不用全局的stack算, 上来给了个node的抽象类, 然后通过观察可以看到有数字+加减乘除几种node组成, 分辨写出这几个node. 然后输入的string是postfix, 所以只需要从后往前一个个扫描即可建树.
给一个2d数组, 求不改变里面数字对应行列最大值的情况下, 数组数字最大增加多少. 这题读懂题很关键, 先找行列对应的最大值, 然后再用两个值中小的那个减去现有的值, res += min(row[i], col[j]) – grid[i][j], where row[i], col[j] is the max number of i, j.
给一个只有奇数的从1开始的递增数组, 给一个operation, 可以让后边的数字变大1前边的数字变小1. 求多少个operation后, 可以让数组的数字全部相等. 这个题就是观察一下, 比如数字第一个数字肯定是1, 那么最后一个数字是2*(n – 1) + 1 = 2*n – 1; 然后一次变换只能加减1, 那么就求差然后除2即可.
给一个数组, 找到有多少组的i,j,k使得ary[i] < ary[j] < ary[k]. 这题就o(n^2)的查找就能过.
给一个string, 里面是括号, 求最少添加几个括号, 让string valid. 用stack跟踪string的左括号. 最后stack的大小就是答案
给一个String, 问里面多少个substring只有一个不同的字符. 首先一个string, 比如aaaaa, 那么里面的只有一个不同字符的是n*(n+1) / 2个子string. 然后找就行了.
给一个数组, 让简单的变化一下.