Two Sum BSTs
给两个bst, 然后看是不是能做two sum. 先用inorder变成array, 然后做two sum.
给两个bst, 然后看是不是能做two sum. 先用inorder变成array, 然后做two sum.
给一个数组和一个数字k, 求数组中k大小的subarray的不同的数字的个数. 用map当滑窗计算一下
给一个string, 里面有偶数位的字符和奇数位的数字组成, 给一个方法decode这个string, 是用字符后的数字位个字符代替数字位. 求decoded string.
设计一个座位预约系统. 用treeset,因为里面有可以直接访问第一个可用key的方法.
给一个数组, 求做完下k次permutation后数组通过几个swap能变回原数组. 这题就是先做k permutation, 然后比较两个数组的不同位置, 找到同样的数字后, swap回来, 因为求的是minimum swap, 所以如果数字相同的情况下, 只要找最邻近做swap即可.
给一个数组, 一个整数start和一个整数target, 求数组离start的index最近的数等于target的. 这题就是从start的index周围开始找. 注意一下边界.
设计一个浏览器的历史记录. 这题我用的是vector, 因为我看到题目要求的visit方法需要把某一点后边所有的历史记录全删除, 所以用cur记录当前访问的位置, 然后用resize()删除[cur+1, v.size() – 1]的范围.
给一个String和一个整数k, 返回k长度的没有重复字符的substring. 这题就是先找所有的没有重复字符substring, 然后看长度是不是k.
给一个robot的api, 问如何清洁一个room. 这题是设计题, 主要还是考虑怎么设计robot的走位, 肯定是dfs没错, 因为room的大小不知道, 所以要按照一定顺序走, 因为robot开始的时候是向上的, 所以按照上右下左开始顺时针走, 并且记录路径. 然后在走不通的时候, 应该统一向一个方向转, 这里选择向右.
给一个string数组和一个pattern string, 求满足这个pattern的string. 因为是pattern, 所以用两个map互相把里面的char建立mapping即可.