题意:给定两个数组,boxes记录box的高和warehouse记录warehouse的高,问warehouse中最多放几个box 思路: 把box排序 创建一个stack,...
题意:给定两个数组,boxes记录box的高和warehouse记录warehouse的高,问warehouse中最多放几个box 思路: 把box排序 创建一个stack,...
题意:给定一个二维数组,行列都拍好序,找出target是否存在 思路:从数组的右上角开始查找 右上角的数比target大,那么向下移动一行 右上角的数比target小,那么向...
题意:给一个数组,和一个k,找出所有的k个数的组合 思路:遍历数组,利用DFS找出所有结果,具体见代码 思想:DFS 复杂度:时间O(n^2),空间O(n)
题意:给定一个二叉搜索树的现需遍历,重构二叉搜索树 思路:先跟遍历数组,每次查看当前遍历到的节点是否在max和min之内,如果不在,返回null,如果在,取当前节点为root...
题意:给定一个字符串,返回去除重复后,安字典顺序最大的字符串 思路:具体见代码注释 思想:双向队列 复杂度:时间O(n),空间O(n)
题意:给一个字符串,一个字符,最少能用字符串中的几个substring拼出字符 思路:dfs遍历找出最小的合法值 思想:dfs 复杂度:时间O(n*n),空间O(n)
题意:给一组机票,重新构建行程 思路: 用map记录每一个出发的城市和它能到达的城市,并用pq来给到达的城市从小到大排序 DFS,每次获取当前城市能到达的城市 如果它能到达的...
题意:给一组课程,里边有修课的先后顺序,查看能否把所有的课修完 思路: 把课程想成有向图,先修的课是出度,后修的课是入度 用map记录每一个节点连接的出度节点们 用in记录每...
题意:根据中序和后序遍历构造二叉树 思路: 把中序遍历的每一个数字和对应的index放到map中 DFS,遍历重构树 每次DFS,传入中序和后序的开始和结束index, 取后...
题意:给定一个墙,让花一条线穿过的墙数最小 思路:遍历每一行,用hashmap统计每一列,有多少最后一格砖,比如{{1,1, 2},{2,2}}那么第1列有1格砖,第二列有两...
题意:把整数转换成十六进制数 思路:把数字和15于8次,每次把于出来的十六进制字符加入结果,并把temp右移4位,如果中间遇到temp==0break,最后把字符串翻转并转换...
题意:给一个乱序的链表,把它排序输出 思路: 找出二分链表的节点 对每一半进行递归排序 把拍好序的两半merge到一个,并返回 思想:归并排序 复杂度:时间O(nlgn),空...
题意:给定一个数组和一个滑动窗口,返回每一个滑动窗口的中位数 思路:遍历数组 维护一个最小的treeset,和一个最大的treeset,记录当前节点的index 每次根据奇偶...
题意:给定一组气球浮动的坐标范围,找出做少的箭来射穿所有气球 思路: 把气球安x[0]从小到大排序 然后遍历数组,每次当左边界小于当前右边界,那么更新右边界,continue...
题意:找出二叉树中所有距离为k的节点 思路: 先跟遍历树,把每一个节点的parent节点找到,并计算他们到root的距离 遍历target的子节点,查看,target到roo...
题意:给定一个树,返回具有最深节点的最小子树 思路:后跟遍历树 如果节点为null,返回null 获取左右子树的最大深度 如果左右子树相等,且深度大于等于当前的最大深度,那么...
题意:后跟遍历整个树 思路: 用stack把头节点放入其中 遍历stack,每次pop出头节点 如果头节点不为空,把头节点的值加入结果,并把左子树和右子树的节点加入其中 遍历...
题意:给一个树,构建它的每一个节点的next节点 思路:按层遍历树, 每次遍历到一个节点cur时,判断它的pre节点是否为空,如果不为空,那么pre.next = cur, ...
题意:给定一个字符串,重构字符串,让相同的字符,不相邻 思路:利用奇偶性,具体见代码注释 思想:字符规律 复杂度:时间O(n),空间O(n)
题意:给定一个二维数组,找出从top left到bottom right的所有路径 思路:动态规划,遍历每一行,dp[i]表示某一行的节点i的所有可能路径总数,递推公式dp[...