一些总结
ChessC
这个作者很懒,什么都没留下…
展开
-
关于博弈论的问题
对于博弈论的问题我们先考虑自己总结的两类简单问题:1.如果是1堆,A,B两个人开始取,每次能取的数目为1~m,那么我作为A先手,要保证赢的话,我该怎么取。这样的问题,因为每次能保证两人取到的和(m+1)固定,因此我先手的情况下,我要考虑取1次后,当前n能够被(m+1)整除,这样的话我一定能够获胜。因此,一般会问两种:判断我能否赢或者我该怎么赢,我直接n%(m+1),如果有余数,那么我直...原创 2018-10-05 11:53:57 · 457 阅读 · 0 评论 -
[Backtracking]Algorithm+[LEETCODE]examples汇总
递归回溯也是经常用到的,最近重新看了两道,归纳一下吧。对于此类的问题,关键点是找递归开始即回溯回来的点。例如:对于数组问题,典型的这个点可以是:(1)index是否到末尾了?(2)当前元素是否进行使用过了?话不多说,看下面三类典型的1.求子集和的问题注意几道求子集和的问题的区别,解法大体都是类似的,用递归回溯的方法39.Combination Sum给定数组中的数字是...原创 2019-02-13 11:00:32 · 143 阅读 · 0 评论 -
[C++][STL]next_permutation字典排列使用
字典顺序排列的问题也经常碰到,现在习惯直接使用next_permutation函数,你要我返回第几个我就返回第几个。对应的,next_permutation(start,end)和prev_permutation(start,end)。这两个函数作用是一样的,区别就在于前者求的是当前排列的下一个排列,后一个求的是当前排列的上一个排列。以Leetcode60.Permutation Sequ...原创 2019-02-14 11:16:10 · 179 阅读 · 0 评论 -
《深度探索c++对象模型》笔记总结(二)
2.1 默认构造函数首先指出两个误解:1)任何类如果没有定义默认构造函数,就会被合成出来一个。2)编译器合成出来的默认构造函数会显式设定“类内每一个数据成员的默认值”。上述两种说法都是错误的!四种nontrivial的默认构造函数:1)类成员中有成员是类对象,并且该成员的类含有默认构造函数。那么C++编译器会给这个类也生成一个默认构造函数,用来调用其成员对象的构造函数,完成...原创 2019-02-26 16:00:09 · 296 阅读 · 0 评论 -
[排序][常见三种][C++实现]
最近在慢慢梳理,对于常见的一些排序算法,简单的例如冒泡,插入,选择这种就不写了,这里写三种感觉有可能问到的:堆排,归并,快排1.堆排简单总结下堆排序的基本思路: a.将无序序列构建成一个堆,根据升序降序需求选择大顶堆或小顶堆; b.将堆顶元素与末尾元素交换,将最大元素"沉"到数组末端; c.重新调整结构,使其满足堆定义,然后继续交换堆顶元素与当前末尾元素,反复执行调整+交...原创 2019-03-21 15:38:10 · 179 阅读 · 0 评论 -
[BST的构建][C++实现]
今天前面碰到一题,判定给定的BST是否是合法的,因为BST性质,LDR遍历递增,根据这个来判定即可。但是碰到给定自行构建BST的时候,给定的输入是这样的:5 15 2 31 0 03 4 54 0 06 0 0什么意思呢,第一行为n和root,分别代表总共n个节点,并且root节点为序号root的节点。之后每一行输入的是三个数,分别为val,left_idx,...原创 2019-03-29 16:09:57 · 1098 阅读 · 0 评论 -
[C++][实现一个栈]
刚好看到这个问题,看了几个网上写的不是很喜欢,自己写一下:使用Mystack类实现,栈用vector+idx来进行模拟分别为下列几个功能:1.Mystack()构造函数,初始化栈顶元素坐标为0,栈内存一个-1标记空2.empty()来判定空,如果当前栈顶元素的值为-1,为空3.push(int x)压入元素,并且坐标后移4.pop()弹出元素,并且坐标前移5.top(...原创 2019-03-27 11:50:36 · 620 阅读 · 0 评论 -
[图算法实现][拓扑/Prim/Kruskal/Dijkstra][C++实现]
最近在总结图的有关算法,参考了一些博客,然后自己实现了一遍,汇总如下:概念就不多总结了1.有向无环图的拓扑排序基本思路:假设我们先统计了边的对应关系邻接表edge,以及对应每个node的入度数组in,并且因为是bfs来进行,使用queue来辅助,那么按照之前说的1.先遍历in数组,选取一个入度为0的节点进queue2.while(!myqueue.emepty())的情况...原创 2019-04-26 15:17:14 · 339 阅读 · 0 评论 -
[LEETCODE][289. Game of Life][in-place方法,思想很好]
之前碰到的一题:289.Game of LifeAccording to theWikipedia's article: "TheGame of Life, also known simply asLife, is a cellular automaton devised by the British mathematician John Horton Conway in 197...原创 2019-04-18 16:12:08 · 413 阅读 · 0 评论 -
[LEETCODE][305. Number of Islands II]
先来看一下题目描述:305.Number of Islands IIA 2d grid map ofmrows andncolumns is initially filled with water. We may perform anaddLandoperation which turns the water at position (row, col) into a la...原创 2019-05-22 16:30:20 · 156 阅读 · 0 评论 -
[LEETCODE][975. Odd Even Jump]
题目描述:You are given an integer arrayA. Fromsome starting index, you can make a series of jumps. The (1st, 3rd, 5th, ...)jumps in the series are calledodd numbered jumps, and the (2nd, 4th, 6th...原创 2019-06-05 10:49:31 · 190 阅读 · 0 评论 -
C++ pass函数,不传参数,如何修改变量的值
怎样在pass()函数中不传参数,添加代码,让main()函数中第二次打印的a变成333...先来看代码:void pass(){ int b=333; int *p=&b; while(*p!=222){ p++; cout<<"address: "<<p<<endl; } ...原创 2019-07-22 15:13:01 · 1729 阅读 · 0 评论 -
DP[dynamic programming]问题汇总分析解答(二)
矩阵DP这一类的DP问题个人觉得是比较简单的一类,基本方法归结为下:1.明确dp[i][j]位置代表的内容,可以为到当前为止的累加和;当前位置的方法总数等等2.明确当前的(i,j)位置可由之前的哪一种状态变化而来,例如很多矩阵情况下会限定向下或者向右走。3.明确上述几点之后我觉得没什么好说的了,注意边界的处理即可,往往是最上一行及最左一列4.还有一点和之前的两个序列不同的是,...原创 2019-01-16 20:09:01 · 205 阅读 · 0 评论 -
DP[dynamic programming]问题汇总分析解答(一)
DP的问题也是绕不开啊,基本思想从0-1背包而来,已经进行过总结了。其他还有好多种的变形,一种种来归纳吧(一)两个序列的DP问题(给定两个string)这类的题目总结后以下述几步解决即可。1.在两个序列的情况下,往往是用二维DPvector<vector<int>> dp(m+1,vector<int>(n+1,0);2.然后进行初始化,...原创 2019-01-16 15:12:11 · 461 阅读 · 0 评论 -
TCP连接中的握手与挥手总结
看了很多关于建立与释放链接的博客也好,本科时候教材也好,总结如下,修正了图上一些觉得有必要填上的序列号等等,并且将整个过程梳理了一遍,重点注意的东西也标记了,私以为条理凑合算得上清晰。参考博客在最后。先来看一下TCP的报头 其中等会要用的罗列一下: 1. 序列号seq占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随...原创 2018-11-15 15:24:12 · 406 阅读 · 1 评论 -
TCP连接拥塞控制四种方法总结(详细简单,稳的一批)
拥塞控制的一般原理在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变换,叫做拥塞拥塞控制和流量控制的区别:拥塞控制往往是一种全局的,防止过多的数据注入到网络之中,而TCP连接的端点只要不能收到对方的确认信息,猜想在网络中发生了拥塞,但并不知道发生在何处,因此,流量控制往往指点对点通信量的控制,是端到端的问题。当提供的负载继续增大到某一数值时,网络的...原创 2018-11-28 22:53:34 · 40568 阅读 · 7 评论 -
《深度探索c++对象模型》笔记总结(一)
首先先明确一个宗旨及两个概念:宗旨:C++在布局及存取时间上主要的额外负担是由virtual引起的1.虚函数:C++多态的基本实现,没什么好说的,详细见如下打包笔记:虚函数2.虚基类:用来处理菱形继承时候,在派生类中数据有重复的问题,见笔记:虚基类--------------------------------------------------------------------...原创 2018-12-25 13:40:41 · 1181 阅读 · 0 评论 -
Trie[字典树]详细总结及例题[给定题解AC beats>=90%]
1. Trie树Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。它有3个基本性质:1.根节点不...原创 2019-01-17 15:07:12 · 265 阅读 · 0 评论 -
DP中背包问题总结
1.01背包:有n种物品与承重为m的背包。每种物品只有一件,每个物品都有对应的重量weight[i]与价值value[i],求解如何装包使得价值最大。//基本问题:二维vec->滚动vec->一维vechttp://note.youdao.com/noteshare?id=78da8bf79c3cc25bc8ca66a9c30a98eb&sub=777D7C1D1D1E...原创 2019-01-09 19:40:08 · 336 阅读 · 0 评论 -
C++,从RTTI联系多态对象内存布局
参考链接:https://blog.csdn.net/ljianhui/article/details/46487951https://blog.csdn.net/haoel/article/details/1948051https://blog.csdn.net/u011580175/article/details/56838877开始正题 RTTI运行时类型检测,主要...原创 2019-08-11 15:56:08 · 766 阅读 · 0 评论