![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 75
liuqingzh
从来不缺从头再来的勇气
展开
-
数组-1 两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums.原创 2021-11-21 00:33:21 · 79 阅读 · 0 评论 -
kmp算法
目录kmp算法的介绍kmp算法的大致思路kmp算法的眼睛kmp算法的next数组的构造next数组实现过程中的归纳和构造两种思想kmp算法完整代码实现kmp算法的介绍KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是...原创 2021-11-19 00:10:33 · 112 阅读 · 0 评论 -
第十二周 acm刷题总结 二分
1 二分查找就不多赘述了,直接上代码吧。都默认单调递增int bin_search(int a*, int head, int tail, int val) { int l = head, r = tail; while(l <= r) { int mid = (l + r) >> 1; if (a[mid] == val) return mid; else if (a[mid] < val) l = mid + 1; else r = mid - 1; }原创 2021-05-19 04:25:07 · 246 阅读 · 0 评论 -
* 第四、五周acm刷题总结 背包**
** 第四、五周acm刷题总结 背包** 思考了两个周的动态规划,希望能慢慢用自己的方式理解。这两个周里想出来的一个“采集”的模型,在总结背包之前先解释一下。 动态规划和贪心都是局部最优累积成全局最优,是一个不断求最优解的过程,关于贪心,我想可以理解成在总揽全局的前提下,制定一个最优原则每一次局部的抉择都遵循这个原则,并且每走一步,往后的选择空间就少了一份。而动态规划,我想并不能做到总揽全局,另外,新的一步客观上继承上一步,但操作方法不受上一步的制约。...原创 2021-04-11 18:53:03 · 126 阅读 · 0 评论 -
**第三周 acm刷题总结 大整数**
**第三周 acm刷题总结**题越来越做不动了,做了个大整数除法学了两三天,这个周只有汇总一下大整数的加减乘除:本想多总结几道题的,大整数除法到现在不会做。大整数的加法:最初的原型是开4个大数组,两个字符型两个整形,方法:利用字符数组进行输入,然后把字符数组里的字符减48转化为对应的整形数字,逆序存进整形数组,这样是为了方便进位,然后模拟加法竖式,代码如下:#include #include #include <time.h>using namespace std;..原创 2021-03-28 23:57:04 · 103 阅读 · 0 评论 -
**第二周 acm刷题总结** 贪心算法
第二周 acm刷题总结 贪心算法贪心算法是通过局部最优解求全局最优解的方法,一般是首先借助朴素方法模拟整个行为过程,通过观察其中各个要素的作用选取有用要素为参照,很多时候需要排序,也有时候不需要。例子如下。例1:每次输入电视节目的总数以及每一个节目的起止时间,求在这n场节目中我最多能完整地看完几个?这个题模拟一下可以画一画线段示意图,然后观察出想要尽可能多看节目,需要先看最早结束的,然后每次都接着看早结束的。故而先按照结束时间升序排序,然后每次遍历结束时刻和下一个节目的开始时刻作比较,如果下一个节目原创 2021-03-20 17:21:02 · 88 阅读 · 0 评论 -
**第一周 acm刷题总结** 并查集,深度优先搜索
**第一周 acm刷题总结**(1) 多组数据的输入:相较于scanf的多种写法,所有的多组输入我都倾向于用while(cin >>) 来解决, 但是这个周在刷题的过程中,我跟一个同学学习到了多组数据的写法,不是多个数据,是多组数据,很喜欢,学到了!比如一组数据包含10个数或者10组数,输入若干组这种数据,就用while(cin >>),可能是输入一个数,也可能是输入一组数,如果是输入一组数就在右面多接几个 >> ,然后对这一组数...原创 2021-03-13 16:06:22 · 136 阅读 · 0 评论