- 博客(9)
- 收藏
- 关注
原创 map的遍历
map的遍历map<T1,T2>::iterator iter;iter = _map.begin();while(iter != _map.end()){cout<<iter->first<<iter->second<<endl;iter++;}//或者for(auto iter = _map.begin();iter != _map.end();iter++){ cout<<iter->first<&
2021-05-11 15:31:29 201 1
原创 分治策略
分治策略将问题分解成多个相同子问题,再合并子问题的解。最大子序和(lc53)给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。思路:求一个数组的最大子序列和,可将问题分解为求这个数组前后各半的最大子序列和,这个数组的解就是前后2部分中的最大子序列和,和跨越这两部分的序列的最大子序列和,这三个和中的最大值。递归求解:确定终止条件:输入序列为一个数时,直接返回这个数值;不断推进:将输入序列分解为两部分,继续递归求解;设计法则:假设所有递归都
2021-05-08 22:53:25 116
原创 表
表两种实现的区别表的数组实现(指针实现)链表存储在连续的内存空间上的通过指针链接不需要连续存储可以随机访问kth需要遍历插入删除元素可能需要最坏情况O(n)O(n)O(n)常数时间需要事先知道表的大小不需要链表的游标实现数组下标代表地址注意事项链表中一般涉及表头删除插入的,最好添加哑节点双链表–方便倒序遍历循环链表如何判断是否有环?快慢指针,慢指针一次走一步,快的走两步。首尾相接时当慢指针走n步,快指针走2n步,就会回到各自的起点
2021-05-06 09:54:06 96 1
原创 2021-04-29
杂记数学运算函数运算exp(n)e^nlog(n)logenlog_enlogenlog10(n)log_{10}(n)log10(n)log10(n)log_{10}(n)log10(n)log2(n)log_2(n)log2(n)log2(n)log_2(n)log2(n)pow(x,n)xnx^nxncpp输出格式#include<iomanip>取消科学计数法cout<<fixed<<
2021-04-29 20:49:10 64
原创 第一、二章 引论、算法分析
递归基本准则递归不是循环基准情形不断推进设计法则【假设所有递归调用都能运行】合成效益法则【不同递归调用中做重复性工作】算法分析对任意常数k,logkN=O(N)log^kN=O(N)logkN=O(N)形如f(N)<O(g(N))f(N)<O(g(N))f(N)<O(g(N)),错误,无意义O(·)本身隐含不等关系要分析的问题:最坏情况下的运行时间分析从内部向外展开O(log(n))O(log(n))O(log(n))型算法:a. 分治b.二分c. 欧几里
2021-04-29 20:26:13 164
原创 1.递归问题之约瑟夫问题
文章目录约瑟夫问题问题描述解决思路扩展思考约瑟夫问题问题描述从围成标记有记号1到n的圆圈的n个人开始,每隔一个人删去一个人,知道只剩一个人。例如n=10的起始图形:消去的顺序是2,4,6,8,10,3,7,1,9,于是5幸存了下来。问题:确定幸存的号码J(n)J(n)J(n)。解决思路从简单情形出发,找规律nnn1 2 3 4 5 6J(n)J(n)J(n)...
2020-02-21 21:36:21 394
原创 1.递归问题之平面上的直线(变形)
文章目录平面上的直线问题变形问题描述解决思路平面上的直线问题变形问题描述此问题是上篇文章问题的变形,即将直线变为折线。问平面上由nnn条这样折线所定界的区域的最大个数ZnZ_nZn是多少?解决思路如下图延长后,可以发现,此类情况可以看作,上题的2条直线划分区域的情形。分析折线与直线的区别,发现,对于每条折线,我们会损失2个区域,从而有Zn=L2n−2n=2n(2n+1)2+1−...
2020-02-21 16:34:46 158
原创 1.递归问题之平面上的直线
文章目录平面上的直线问题问题描述解决思路平面上的直线问题问题描述平面上nnn条直线所界定的区域的最大个数LnL_nLn是多少?解决思路考虑nnn较小时的情况当nnn逐渐增大时(lll为非最大个数),lnl_nln和ln−1l_{n-1}ln−1关系是,多出一条线且此线经过一个区域就增加一个区域。不难发现,假如增加了kkk个区域,就多产生了k−1k-1k−1个交点。又因为最多...
2020-02-20 23:08:34 248
原创 1.递归问题之汉诺塔
文章目录1.递归问题1.1 汉诺塔问题问题描述:解决思路:1.递归问题1.1 汉诺塔问题问题描述:有n个圆盘组成的塔,这些圆盘按照大小递减的方式套在三个柱子的其中一个上,现在要求将整个塔移动到另一根柱子上,每次只能移动一个圆盘,且较大的圆盘在始终不能放在较小的圆盘上面,问最少移动多少次可以达到要求。解决思路:先研究小的情形,移动一个圆盘时,移动两个圆盘时···求解问题的下一步是引...
2020-02-20 22:02:25 157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人