摘要: 思路: 选定一个基准数,每次一轮排序完成后要满足基准数左边的都是比它小的数,右边的都是比它大的数。然后再分别对左表和右表进行同样的操作,直到所有排序完成。其实不难发现,每一轮排序都使得一个数(基准数)放在了它“正确的”位置上。 时间复杂度: O(nlogn)至O(n2),平均时间复杂度为O(nlog 阅读全文
posted @ 2018-12-03 21:01 Piccolo_Devil 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 思路: 从第一个数开始,依次与下一个数比较,若下一个数比它小,则发生交换。这样每一次遍历都将其中最大的数冒泡到顶端,直到所有数冒泡完成则排序完成。 时间复杂度: 最好情况一次排序就完成,O(n)复杂度;最坏情况逆序,O(n2)复杂度。平均时间复杂度为O(n2)。 代码: 阅读全文
posted @ 2018-12-03 20:59 Piccolo_Devil 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 快速幂 先来讨论整数的快速幂算法,相比于一般的计算a^b时间复杂度O(n),快速幂的复杂度是O(logn),效率要更高。比如要计算x^19,19的二进制表示是10011,分别找到二进制1出现的位置对应的数值,1,2,16。而19也正好可以写成1+2+16,所以x ^ 19 == (x ^ 1) *( 阅读全文
posted @ 2018-12-03 20:26 Piccolo_Devil 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题目链接 http://codeforces.com/contest/1080/problem/C 题意 给出一个n*m规格的矩形方块,这个矩形方块初始状态是严格的黑白相间的,现在有两次操作,第一次操作是将一块区域的矩形全部变为白色,第二次操作是将一块区域的矩形覆盖成黑色,要求的是经过两次操作之后白 阅读全文
posted @ 2018-11-28 19:02 Piccolo_Devil 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 题目链接 http://codeforces.com/contest/1080/problem/B 思路 数学规律题 代码 阅读全文
posted @ 2018-11-26 16:47 Piccolo_Devil 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题目链接 http://hdu.hustoj.com/showproblem.php?pid=3308 问题描述 给出n个整数,有两种操作 1)U A B:用B取代第A个数(下标从0开始) 2)Q A B:输出在[A,B]中最长连续递增子序列的长度分析 给出一个序列,两种操作,分别是单点更新值和查询 阅读全文
posted @ 2018-11-24 11:02 Piccolo_Devil 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 枚举中心位置法: 枚举中心位置中,我们需要特别考虑字符串的长度是奇数还是偶数,所以导致我们在编写代码实现的时候要把奇数和偶数的情况分开编写,而Manacher算法则不用分奇偶来讨论 而且上面这种枚举中心位置往两边找的算法时间复杂度是O(n2),下面介绍的“马拉车”算法时间复杂度是O(n) Manac 阅读全文
posted @ 2018-11-19 21:27 Piccolo_Devil 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 上面两种判断回文的方法在复杂度上没有区别,都是O(n)的时间复杂度和O(1)的空间复杂度。但是第二种从中间往两边判断的方法在解决一些问题时有独到之处。 阅读全文
posted @ 2018-11-17 12:17 Piccolo_Devil 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 描述: 给定一个字符串,要求把字符串前面若干个字符移位到字符串的尾部。 思路与代码: 暴力法的复杂度: 对一个长度为n的字符串来说,若需要移动m个字符到尾部,时间复杂度为O(m*n),空间复杂度为O(1),接下来来找找其他更好的方法来降低时间复杂度。 举个例子,对于一个字符串abcdef,要将前三个 阅读全文
posted @ 2018-11-05 18:02 Piccolo_Devil 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 题意: 一行长度为n的方格,只能使用三种颜色R、P、G来填充,且满足相邻方块不能同色,首尾方块不能同色。给出n,输出满足条件的着色方案数。 思路: 简单递推,由n-1个方块推导出n个方块的情况,有以下两种情况: 1.第n-1个方块与第1个方块不同色,满足条件。直接在n-1的满足基础上添加第n个,且第 阅读全文
posted @ 2018-09-22 23:45 Piccolo_Devil 阅读(134) 评论(0) 推荐(0) 编辑