会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
宝宝的你叔叔
博客园
首页
新随笔
联系
管理
订阅
2020年2月29日
字符串匹配之KMP算法
摘要: 想到字符串匹配,我们一下子就会想到暴力匹配,但是这种暴力匹配的算法时间复杂度太高,顾前人便发挥聪明才智,发明了KMP算法。 KMP算法需要两步: 1)构造next数组 next[j] = k的含义是当j位置失配时,指针跳到k位置处 2)利用next数组进行字符串匹配 #include <iostre
阅读全文
posted @ 2020-02-29 10:54 宝宝的你叔叔
阅读(118)
评论(0)
推荐(0)
2020年2月28日
蓝桥杯--最长公共字串
摘要: 题目描述:最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少。比如:"abcdkkk" 和 "baabcdadabc",可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。题目解析: 求最
阅读全文
posted @ 2020-02-28 22:40 宝宝的你叔叔
阅读(171)
评论(0)
推荐(0)
蓝桥杯--字母组串
摘要: 问题描述:有ABC三个字母,给出每个字母的个数,问能得到多少个固定长度的串。 问题解析:这个问题很简单,使用递归,每一次可以选择ABC三个字母中的任意一个,前提是字母的个数不为0。当总长度为指定长度时,表示得到一中组合方案。 代码如下: #include <iostream>using namesp
阅读全文
posted @ 2020-02-28 22:06 宝宝的你叔叔
阅读(235)
评论(0)
推荐(0)
蓝桥杯真题--方格分割
摘要: 题目描述: 6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。问有几种合法的分割方法?? 如图,这就是一种合法的分割方法: 题目解析:第一次看这个题目,很容易想到是dfs深度优先搜索,但是并没有想到从线条的方面来做dfs,而是从方格的角度来做dfs,浪费了很长的时间。废话不多说。
阅读全文
posted @ 2020-02-28 21:33 宝宝的你叔叔
阅读(292)
评论(0)
推荐(0)
BFS宽度优先搜索例题--跳蚱蜢
摘要: 使用宽度优先搜索的题目--给你一个初始状态,问到达某一个状态最少需要多少步? 此时使用宽度优先搜索,利用队列将每一个状态放入队列中,同时需要维护对应状态对应的步数。 废话不多说,关门放题!! 跳蚱蜢 有9只盘子,排成1个圆圈。 其中8只盘子内装着8只蚱蜢,有一个是空盘。 我们把这些蚱蜢顺时针编号为
阅读全文
posted @ 2020-02-28 01:54 宝宝的你叔叔
阅读(289)
评论(0)
推荐(0)
2020年2月26日
动态规划-01背包问题
摘要: 动态规划简介 动态规划方法代表了这一类问题(最优子结构或者子问题最优性)的一般解法,是设计方法或者策略,不是具体算法。 动态规划的本质是递推,核心是找到状态转移的方式,写出dp方程,最利于解决重叠子问题(比如斐波那契方程)。 形式: 记忆型递归 递推 下面讲解下01背包问题: 问题描述:有n个重量和
阅读全文
posted @ 2020-02-26 15:52 宝宝的你叔叔
阅读(189)
评论(0)
推荐(0)
快速排序(快速排序系统学习)
摘要: 快速排序其实是使用分治法的思想,即在原数组中找一个数p,然后将原数组中比数p大的数放到此数的右边,比数p小的数放到次数的左边。 口诀:1.找中轴 2.左边快排 3.右边快排 主体代码如下: void quick_sort(int * data,int left,int right){ if(left
阅读全文
posted @ 2020-02-26 00:32 宝宝的你叔叔
阅读(214)
评论(0)
推荐(0)
2020年2月25日
十分钟记住快速排序(快速排序快速记忆方法)
摘要: 快速排序很简单,分为三步: 1.找中轴 2.左边快排 3.右边快排 注意事项:每一次快排之前都要判断左边的下标是否小于右边的下标 代码如下: void quick_sort(int * data,int left,int right) { if(left < right) { int index =
阅读全文
posted @ 2020-02-25 22:43 宝宝的你叔叔
阅读(1378)
评论(0)
推荐(0)
公告