
算法
monkey-jie
这个作者很懒,什么都没留下…
展开
-
经典排序算法归纳
算法概述算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。算法复杂度相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。...原创 2019-12-05 12:52:48 · 256 阅读 · 0 评论 -
正则表达式匹配
题目描述请实现一个函数用来匹配包括’.‘和’ * ’ 的正则表达式。模式中的字符’.‘表示任意一个字符,而’ * '表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab * ac * a"匹配,但是与"aa.a"和"ab * a"均不匹配解题思路考虑为空的情况。如果字符串和模式都为空的话,那肯定是不...原创 2019-11-19 17:27:00 · 3025 阅读 · 0 评论 -
三数之和
题目描述给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1...原创 2019-10-22 22:15:54 · 315 阅读 · 0 评论 -
滑动窗口问题——最小覆盖子串
题目描述给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串 “”。如果 S 中存在这样的子串,我们保证它是唯一的答案。解题思路这是一个滑动窗口类题目。首先将要被覆盖的子串T加入到一个Ha...原创 2019-10-22 22:14:12 · 306 阅读 · 0 评论 -
杭电oj之4004题的思考
原题地址对于我这个菜鸡来说,这题理解起来确实是花了好长时间,这题也不是我自己做出来的,是在网上找的题解。不过还是想分享一下自己看了源代码后的思考。我的一些想法:首先这题要先理解清楚题意,该题的目的是,这个青蛙要在给定的步数内刚好到达对岸,所以要找的是青蛙应该至少拥有的能力,这是解题的关键。该题的思路是贪心算法 + 二分法查找,具体的可以点击链接了解。另外还用到了一个STL算法upper_bou...原创 2019-03-14 19:41:02 · 245 阅读 · 0 评论 -
记录一下菜鸡写oj的经历
由于为了双创学分,报了学校的一个c语言竞赛实训,虽然大一的时候也学过一点算法(但是后来怕秃头就没学了)。没办法啊,又得重新开始学,然后就做起了老师布置的杭电oj的4道题。分别是1040,1045,1872,2020。这几题的思路其实都很简单,只是我太菜了而已。(代码都是cpp文件)1、1040这题就是个简单的冒泡排序,只不过是需要一点点加工而已。根据题目描述,我们是需要先输入测试的组数n,然后...原创 2019-03-10 18:41:49 · 506 阅读 · 2 评论