数据结构和算法
-TianSF-
-
展开
-
dfs和bfs
struct Node { Node(int v) : val(v) { } Node* l = nullptr; Node* r = nullptr; int val; }; void bfs(Node* n) { queue<Node*> que; que.push(n); while (que.size()) { n = que.front(); ...原创 2019-03-25 09:28:06 · 169 阅读 · 0 评论 -
快排
int partition(vector<int>& vec, int lo, int hi) { int pivot = vec[lo]; int i = lo, j = lo; while (i <= hi) { if (vec[i] < pivot) { j++; std::swap(vec[i], vec[j]); ...原创 2019-04-01 16:18:11 · 153 阅读 · 0 评论 -
二叉树分层遍历
class Solution { public: bool isSymmetric(TreeNode* root) { if (!root) return true; vector<TreeNode*> vec; vec.push_back(root); int cur = 0; while (cur < vec.size()) { int ...原创 2019-04-11 18:22:54 · 356 阅读 · 0 评论 -
回溯模板
全排列 def dfs(nums, d): if d == len(nums): print(nums) for i in range(d, len(nums)): nums[d], nums[i] = nums[i], nums[d] dfs(nums, d+1) nums[d], nums[i] = n...原创 2019-04-13 12:04:59 · 720 阅读 · 0 评论