常见算法实现
qq_22228095
这个作者很懒,什么都没留下…
展开
-
01背包、完全背包、多重背包详解
目录一、01背包问题二、完全背包问题三、多重背包一、01背包问题问题:有n件物品和一个容量是m的背包。第i件物品的体积是vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。解答:问题中每个物品只有选与不选两种状态。动态规划的状态转移方程:dp[i][j] = max(dp[i-1][j], dp[i][j-vi]+wi) , d[i][j]表示只看前i个物品且总体积是j时,最大的价值。//v是物品的体积,w是价原创 2020-10-08 21:26:29 · 2608 阅读 · 0 评论 -
二叉树的各种遍历方式实现
节点数据结构struct TreeNode {public: int val; TreeNode* left; TreeNode* right; TreeNode(int v) :val(v), left(nullptr), right(nullptr) {}};一、递归遍历void order(TreeNode* root) { if (root != nullptr) { //先序访问位置 order(root->left); //中序访问位置 or原创 2020-10-01 21:00:54 · 115 阅读 · 0 评论 -
C++实现完整红黑树(包括迭代器的实现)
#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;//定义红黑树节点颜色的类型typedef bool RB_COLOR;#define RB_BLACK true#define RB_RED false#define bro(x) (((x)->ftr->lc == (x))?((x)->ftr->rc):((x)->ftr->lc))//定义红黑.原创 2020-10-01 20:51:58 · 326 阅读 · 0 评论