leetcode刷题链接

算法思想1. 双指针2. 排序3. 贪心思想4. 二分查找5. 分治6. 搜索7. 动态规划8. 数学数据结构相关1. 链表2. 树3. 栈和队列4. 哈希表5. 字符串6. 数组与矩阵7. 图8. 位运算


【PAT A1020】通过中序和后续遍历还原二叉树并进行层序遍历

规律① 后续序列中最后一个是根节点② 中序序列中根节点左边是左子树,右边是右子树所以:① 找到中序序列中的根节点位置② 然后将新树的范围划定出来:中序左子树为根节点左边右子树为根节点右边;后序序列左子树为左边的n个(n为中序左子树数目)后序右子树为剩下的部分(不包含最后一个根节点)③ 递归的创建左子


N皇后问题(全排列)

以前一直觉得这个很难,今天重新看了下其实很简单。题目题目 在n*n的棋盘上,n个皇后不能在同一行同一列同一对角线上,输出一共有多少种方案。思路思路 其实就是全排列的问题,通过全排列可以枚举出n个皇后在棋盘上每一列的所有排布情况,全排列的话必定不会在同一行或同一列,所以只需要考虑对角线就行。代码全排列


【笔记】动态规划-求解资源分配问题

题目解法分析题目,可以知道第 i 个商店有 n 个员工时候的收益,所以可以把问题分解为前 i 个商店分配 n 个员工的最大收益 = 第 i 个商店分配 k 个员工的收益 + 前 i - 1 个商店 分配 n - k 个员工 的收益的最大值所以 状态转移方程 就是dp[i][n] = max(dp[i