C++
编程小嫩鸡
这个作者很懒,什么都没留下…
展开
-
力扣刷题:动态规划总结(1)
动态规划的三个要点:最优性定理,状态转移方程,边界条件。动态规划问题的最大难点在于如何选定状态,确定状态转移方程。动态规划问题的形式多样,在阶段数目上看,有固定阶段数的,以及非固定阶段数的。后者居多。1.最长回文子串,给定一个字符串,选出该字符串中最长的回文子串序列,例如:“abab”,答案为aba,或在,者bab。解法1:若第i个字符到第j个字符构成一条回文串,则第i+1到第j-1个字符同样构成回文串。这样我们就写出了状态转移方程。p(i,j)成立,当且仅当p(i+1,j-1)成立且Si==S原创 2022-03-27 12:25:12 · 193 阅读 · 0 评论 -
优先序列优化的Dijkstra算法(C++实现)
Dijkstra算法其基本思想,从起点出发,遍历能达到的所有点(BFS的思想),计算累计距离,选择距离最短的点,作为一下次的起点。所以需要一个数据结构来储存距离(路径记录)。第一步,构建实现算法所需要的三种数据结构,邻接点(adjNode),顶点(vertice),路径记录(trace)。#include <iostream>#include <vector>#include <queue>using namespace std;struct adjNode原创 2022-03-20 19:48:42 · 728 阅读 · 0 评论 -
图论:BFS算法与DFS算法的C++实现
关于算法的准确性,本人只测试了比较简单的情况,两个算法是否存在未发现的漏洞,本人不做任何担保BFS算法:类似于树的层序遍历,需要借助队列实现`算法的基本流程:起始点——探索未遍历的邻接点——未遍历的邻接点作为新的起始点重复`#include <iostream>#include <vector>#include <queue>#include "adjacency_list.h"using namespace std;//构建邻接表struct adj原创 2022-03-12 11:44:32 · 2822 阅读 · 0 评论