Construct String from Binary Tree
给一个数组, 返回有括号表示后的pre order traversing..
给一个数组, 返回有括号表示后的pre order traversing..
给一个0,1数组, 返回最长的0和1相等的子数组. 这个直接count也能做, 但是我看讨论中有一个解法更巧妙. 先把0变成-1, 以为n个0和1个0想加是没有区别的, 所以变成-1就可以知道有几个-1了, 然后只需要找相同的sum就可以找到-1和1的相同的位置, 只需要记录最多的个数就可以.
给一个字符串, 问有几个组成.
给一个2d数组, 里面是一个数字和不小于(大于等于)它的数字个数. 求一个sorted数组. 这个直接sort就可以.
蛙跳问题, 一般的跳数问题都是贪婪算法. 但是这个问题比较特殊, 他给的是一个排序好的递增数组,表示石头的编号, 然后青蛙可以跳k, k-1, k+1三个固定的数字, 并且青蛙只能前跳. 那么这个问题可以直接用memo+dfs来做, 用一个map充当memo, 然后只需要每次查找上面三个位置是否有石头可以跳即可.
给一个字符串表示的数, 返回删除k个数字后, 最小的那个.首先需要观察一下数字的表示, 越靠左边的数字的位数越高, 那么他 这个需要用一个数组, 把字符放到数组的index中, 数组本身, 找到前k个大的数字, 然后验证是否是递减的, 如果不是, 则删除当前的. 最后还要把leading 0去掉.
给一个字符串, 返回第一个非重复的字符. 这个就count一下就找到了.
给一个数组, 返回它的随机洗牌. 直接用random就好, 一般o(n)的复杂度都可以.