算法
文章平均质量分 53
小桃核
永保活力,学习的道路任重而道远!!!!!!
展开
-
算法————简单的字符串翻转(只有单词反转,单词里的字母不反转)
题目要求:用C/C++来实现字符串的反转。比如:字符串”I am student.”反转之后变成了”student. am I”。(只有单词反转,单词里的字母不反转)思路: 通过两步来实现: 1.将句子中的每个单词翻转。 2.将整个句子翻转 画图来分析: //这段代码实现翻转 void rotate_sentenc...原创 2018-05-28 15:27:14 · 2624 阅读 · 0 评论 -
算法————入栈出栈合法性检验
出栈入栈合法性检验1.首先得讲一下对问题的理解,例如这样一道题问题如下:入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1)是合法序列,入栈的序列(1,2,3,4,5),出栈序列为(1,5,3,2,4)是不合法序列2.问题就是这样,也就是说给我们一串这样的数组,我们用不同的入栈方式,是否能得到所要验证的出栈序列,那么我们可以还原入栈出战的场景,顺着出栈顺序的思路入栈出栈,看是否能够顺利原创 2018-02-24 15:09:57 · 1264 阅读 · 0 评论 -
算法————皇后问题(回溯法)
#include<iostream>#include<cmath>#include<vector>using namespace std;class Nqueen{public: long NQueen() { cout<<"请输入皇后个数!"<<endl; cin>>n; sum = 0; a.reserve(n+1); init(); backtrack(1);//找合理原创 2018-05-31 18:00:23 · 2059 阅读 · 0 评论 -
算法————双栈实现队列、双队列实现栈、实现一个栈Push(出栈)Pop(入栈)Min(返回最小值的操作)的时间复杂度为O(1)
一.双栈实现队列1.思路原理:队列的特点,先进先出;栈的特点,后进先出;原理刚好相反,那么无非是俩个栈互相“倒“或者“导”,这都不是重点了,有了这个初步思路我们就得想办法来实现如何倒了。2“倒”或者“导”思路图:法①:核心原理:每次插入都得倒回popstack栈的所有元素,最后所有的元素回归popstack法一代码:template<class T>class QueueByTwoStack{原创 2017-10-10 20:26:01 · 958 阅读 · 0 评论 -
算法————设计一个O(N^2)时间复杂度的算法,找出由n个数组成序列的最长单调递增序列
关于这道题,其实就是利用动态规划的一种思想,解这道题有点类似冒泡,采用遍历数组序列,不断更新递增序列的长度以至于来找到最长单调递增序列。关于问题呢,大概已有有一点思路:下面将思路画一画,通过将思想的整理,得到这样一副图: 通过图片我们可以看出要想找到最长递增子序列,我们得不断扩大范围这里是指图片中的(sub[i]所对应的区间),其实也就在小区间得到递增的序列的长度,然后继续扩大区间来...原创 2018-06-06 15:31:51 · 9948 阅读 · 5 评论 -
算法————排序总结
排序是我们程序员成长过程必不可少的一部分营养,今天就将这一部分的内容总结一下:常见的排序算法分为:插入排序(插入排序、希尔排序(插入排序的变形))、选择排序(选择排序、堆排序)、交换排序(快排、冒泡)、归并排序...原创 2018-12-07 21:48:42 · 192 阅读 · 0 评论 -
银行家算法
银行家算法模拟实现直接上代码吧!!!bank.h:#include&amp;amp;lt;iostream&amp;amp;gt;using namespace std;#include&amp;amp;lt;vector&amp;amp;gt;//预定资源数组#define PRO 50//最大进程数#define MAXAVSUR 10//最大资源种类数int AVAILABLE[MAXAVSUR];原创 2019-01-04 11:35:37 · 331 阅读 · 0 评论 -
打印一个串的全排列
1.全排的概念:从n个数中取出m个数(m<=n)按照一定的次序排成一列,叫做从n中去m个数的排列,那么n个数中取出n个数按照一定次序排成一列,叫做n的全排列。2.举个例子:1 2 3 4的全排列是:1 2 3 41 2 4 31 4 2 31 4 3 21 3 4 21 3 2 4。。。总共有12种序列(123*4),但这是我们通过大脑的做出来的,现在我们把我们脑海里的思路...原创 2019-04-09 12:46:12 · 186 阅读 · 0 评论