自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Bellman-Ford算法

问题: 假设一张图中总共有n个节点,编号0 ~ n - 1, 计算K节点到所有其他节点的最短距离初始化: vector<int> dist(n, INT_MAX)边:vector<\vector<int>> edges;邻接表:vector<\vector<int>> adj;for (int i = 0; i < n; i...

2020-01-22 16:29:33 103

原创 leetcode787 K站中转内最便宜的航班

方案一: Bellman-Ford DP源节点src, 目的节点v经过中间站个数为kdp[k][v]表示最多经过k个中间站到达v所需要的最少花费, 那么dp[k][v] = min{dp[k - 1][v], dp[k - 1][u[ + w[u][v]},u属于[0, n - 1]方案二: 新定义节点结构体,结构体中字段有节点编号、节点所处深度、及到达该节点的花费bfs在存在环的...

2020-01-22 16:00:27 353

原创 leetcode526“优美的排列”-经典回溯问题总结

题目描述:假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一个优美的排列。条件:第 i 位的数字能被 i 整除i 能被第 i 位上的数字整除现在给定一个整数 N,请问可以构造多少个优美的排列?1、不定义新的节点结构体只用一个stack<int&...

2020-01-22 11:56:46 191

原创 leetcode907 所有连续子数组中最小值之和

ex. A = [3 1 2 6 4]对于原始数组A中下标为k的元素,从k往左寻找,至第一个小于A[k]的元素出现,下标记为i:如果下标i不存在,那么sum[k] = A[k] * (k + 1);如果下标i存在,那么sum[k] = sum[i] + (k - i) * A[k];其中,sum[k]表示所有以A[k]结尾的连续子数组最小值和。那么,问题来了: 对于任意的k,如何快速找到...

2020-01-20 14:50:19 400

原创 C++ getline函数切割字符串

class Solution {public: string simplifyPath(string path) { stringstream is(path); vector<string> strs; string res = "", tmp = ""; while(getline(is, tmp, '/')...

2020-01-19 15:34:27 923

原创 Kruskal算法和Prim算法

K算法: 加边法(边权值按从小到大排序)P算法: 加点法

2020-01-17 00:19:54 119

原创 Dijkstra算法和Floyd算法

D算法可分为4个步骤:1、初始化节点;2、寻找dist[i]中最小值对应的节点minIdx;3、更新所有与节点minIdx相邻的节点经过它中转时的路径信息;4、更新已访问过的所有节点经过minIdx中转时的路径信息;...

2020-01-16 17:49:38 157

原创 leetcode97 子数组最小值之和

/*class Solution{ public: using myType = pair<int, int>; struct cmp { bool operator()(const myType& m1, const myType& m2) const { return m1.second > m2.second; } ...

2020-01-15 18:09:29 106

原创 leetcode983"最低票价问题"解法分析

力友解法一:整体往后移动30天,避免天数判断,简化代码class Solution {public: int mincostTickets(vector<int>& days, vector<int>& costs) { int dp[400] = {}; int a = costs[0], b = costs[1...

2020-01-15 09:28:31 207

原创 C++ 二分查找的三个函数

vector<int> sum;auto it = low_bound(sum.begin(), sum.end(), to_find);// 返回的是迭代器指针,第一个出现的位置upper_bound() // 最后一个出现的位置binary_search() // 返回bool型INT_MAX...

2020-01-14 14:59:56 369

原创 leetcode131 dp+回溯+vector代替stack

题目:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。class Solution {public: vector<vector<string>> partition(string s) { vector< vector<int> > dp = isPalindr...

2020-01-14 11:08:30 156

原创 C++类使用规范

1. 只有基类析构函数是virtual,通过多态调用的时候才能保证派生类的析构函数被调用。2. 对于单淡出的构造函数是要求explict声明,避免触发隐式转换。3. 对于不会修改成员变量的成员函数使用const修饰void func () const { };4. 在重写虚函数时请使用override关键字,避免子类函数与积累函数原型不一致;void func () override {...

2020-01-11 11:08:26 219

转载 map/set删除元素几种方式

删除键为bfff指向的元素cmap.erase(“bfff”);删除迭代器 key所指向的元素map<string,int>::iterator key = cmap.find(“mykey”);if(key!=cmap.end()){cmap.erase(key);}删除所有元素cmap.erase(cmap.begin(),cmap.end());删除map中指...

2020-01-10 14:07:31 1116

原创 函数对象

很多STL算法都使用函数对象-也叫函数符(functor)class A { double operator() (double x) { return 0; };}A a;double val = a(1.0);重载()运算将使得能够像函数那样使用类对象...

2020-01-09 11:03:36 62

原创 C++ 容器

序列容器deque支持随机访问list模板类表示双向链表list在链表中任一位置进行插入和删除的时间都是固定的。list不支持数组表示法和随机访问。list成员函数:void merge(list<T, Alloc> &x)void remove(const T& val)void sort() // 快速插入的代价是放弃随机访问功能,所以不能将非成员函...

2020-01-09 10:57:39 103 1

原创 C++基于模板实现泛型编程和元编程

模板使得算法独立于存储的数据类型,而迭代器使算法独立于使用的容器类型

2020-01-09 10:36:59 414

原创 C++11函数包装器

C++提供了多个包装器(wrapper,也叫适配器(adapter)),包括bind、men_fn、reference_wrapper及包装器function(仿函数)。这里主要讲包装器function。主要为了解决模板的低效性。answer = ef(q);ef是什么呢?可以是函数名、函数指针、函数对象、或有名称的lambda表达式,所有这些都是可调用类型。template<t...

2020-01-08 18:19:35 484

原创 C++11 lambda表达式能带来哪些好处?

先预习下"函数符"概念:class f_mode {pritvate:int dv;public:bool operator() (int x) {return x % dv == 0;}};cout_if(numbers.begin(), numbers.end(), f_mod(3));cout_if(numbers.begin(), numbers.end(), f_mod(...

2020-01-08 17:36:45 6055 1

原创 c++11右值引用--为了实现移动语义和完美转发

/*右值引用解决两大问题:移动语义和完美转发 */#include <iostream>#include <vector>#include <memory>using namespace std;class obj {public: obj() { cout << " 1 " << end...

2020-01-08 17:04:49 196

原创 GDB调试

1 转到帧命令(结合bt)frame n – 转到第n层调用栈2 结束子函数,返回到调用函数finish3 结束循环命令until4 set(gdb) set $i=“hello”(gdb) ptype $itype = char [6]set var a = 35 call事先准备好函数入参6 info local打印所有局部变量7 list -n查看前n行代码...

2020-01-08 11:50:00 131

原创 逆序删除list元素 反向迭代器

rt

2020-01-07 16:52:21 420 1

原创 map初始化几种方式

待补

2020-01-07 14:23:53 3069 1

原创 C++容器使用易错点

map

2020-01-02 15:04:50 180

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除