【算法|动态规划】头文件及函数实现
本文最后更新于 422 天前,其中的信息可能已经有所发展或是发生改变。
动态规划头文件及函数实现

持续更新中…

  • dynamicPro.h
#ifndef DYNAMICPROGRAMMING_H_
#define DYNAMICPROGRAMMING_H_
// ================== Dynamic programming methodology ================== //
// Step1: 确定dp数组的下标及其含义
// Step2: 递推公式
// Step3: dp数组初始化
// Step4: 遍历顺序
// Step5: 打印dp数组
// ==================================== End ============================ //
#include <iostream>
#include <vector>
#include <string>
#include <unordered_set>


using std::cout;
using std::endl;
using std::vector;
using std::string;
using std::unordered_set;

void printVector(const vector<int>& vec);

// 使用函数模板打印不同类型的二维数组
template <typename T>
void print2DVector(const vector<vector<T>>& vec);

#endif

  • dynamicPro.cpp
#include "dynamicPro.h"

void printVector(const vector<int>& vec){
    if (vec.size() == 0){
        cout << "[]\n";
        return;
    }

    cout << "[";
    for (int i = 0; i < vec.size(); i++){

            if (i == vec.size() - 1)
                cout << vec[i];
            else
                cout << vec[i] << ", ";
    }
    cout << "]\n";
      
}

// ===================== print 2D vector  ===================== //
template <typename T>
void print2DVector(const vector<vector<T>>& vec){
    if (vec.size() == 0){
        cout << "[]\n";
        return;
    }

    cout << "[";
    for (int i = 0; i < vec.size(); i++){
        cout << "[";
        for (int j = 0; j < vec[i].size(); j++){
            if (j == vec[i].size() - 1)
                cout << vec[i][j];
            else
                cout << vec[i][j] << ", ";
        }
        if (i == vec.size() - 1)
            cout << "]]\n";
        else
            cout << "], ";
    }
}
// 对bool类型进行特化
template <>
void print2DVector(const vector<vector<bool>>& vec){
    if (vec.size() == 0){
        cout << "[]\n";
        return;
    }

    cout << "[";
    for (int i = 0; i < vec.size(); i++){
        cout << "[";
        for (int j = 0; j < vec[i].size(); j++){
            if (j == vec[i].size() - 1)
                cout << (vec[i][j] ? "true" : "false");
            else
                cout << (vec[i][j] ? "true" : "false") << ", ";
        }
        if (i == vec.size() - 1)
            cout << "]]\n";
        else
            cout << "], ";
    }
}
// 显示实例化模板函数
template void print2DVector<int>(const vector<vector<int>>& vec);
template void print2DVector<bool>(const vector<vector<bool>>& vec);
// =================== End print 2D vector  =================== //
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇