
算法
文章平均质量分 83
学下算法
Echo-Nie
这里是我本科期间的笔记本,记录学习和成长
展开
-
部分简单字符串算法题解(自用)
结尾的简单英文句子,单词之间用单个空格分隔,没有缩写形式和其它特殊形式,求句子中的最长单词。编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。行,每行包含一个不含空白字符的字符串(长度不超过 200)。给定一个不含空白字符的字符串,要求找出其中最长连续出现的字符及其出现次数。对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。原创 2025-02-28 09:38:23 · 2367 阅读 · 0 评论 -
C++ 中的reduce函数使用指南
reduce函数类似于accumulate,但它允许更灵活的并行化和元素分组。头文件是<numeric>。// 没有初始值// 有初始值// 自定义操作。原创 2025-02-28 09:37:36 · 328 阅读 · 0 评论 -
前缀和相关题目记录(未完待续...)
一维前缀和是指对于一个数组a,我们定义一个新的数组s,其中每个元素si表示从数组开头到第isia1a2⋯aij1∑iajsumlrsr−sl−1如果l1,则sumlrsr。二维前缀和是前缀和思想的扩展,适用于矩阵。对于一个n×m的矩阵a,我们定义一个二维前缀和矩阵s,其中sij表示从矩阵左上角11到右下角ijsijx1∑iy1∑jaxy通过二维前缀和矩阵s。原创 2025-02-24 18:16:02 · 889 阅读 · 0 评论 -
快速排序与归并排序模板
核心是将一个复杂的问题分解为若干个规模较小的子问题,这些子问题相互独立且与原问题是同类的。将子问题逐个解决之后,再将子问题的解合并,从而得到原问题的解。主要三个步骤:分解:选择一个基准元素(pivot),然后将数组分割成两个子数组。其中一个子数组的所有元素都小于基准元素,另一个子数组的所有元素都大于基准元素。递归:对两个子数组(小于基准元素的子数组和大于基准元素的子数组)进行递归快排,直到每个子数组的大小减少为 1 或 0,此时它们自然有序。原创 2025-02-28 09:39:24 · 508 阅读 · 0 评论 -
C++ STL中的reverse/unique/sort/lower_bound/upper_bound函数使用
本文主要涉及以下几个函数:功能:反转指定范围内的元素顺序。 不会改变容器的大小,仅改变元素的顺序。2. unique功能:移除相邻重复元素(不保证全局唯一性),返回调整后序列的末尾迭代器。注意: 只能移除相邻的重复元素,因此通常需要先对容器进行排序。3. sort功能:对指定范围内的元素进行排序,默认升序。自定义排序规则:4. lower_bound 和 upper_bound 函数功能:分别查找第一个大于或等于目标值的元素位置,以及第一个大于目标值的元素位置。注意: 和 都要求原创 2025-02-20 22:16:42 · 327 阅读 · 0 评论 -
解析 C++ STL 中的 next_permutation 和 prev_permutation 函数
用于生成当前序列“下一个”字典序排列的函数。如果当前序列已经是字典序中的最大排列,则返回false,否则返回true并修改原序列以生成下一个排列。:与类似,但它是用于生成当前序列“前一个”字典序排列的函数。如果当前序列已经是字典序中的最小排列,则返回false,否则返回true并修改原序列以生成前一个排列。函数原型参数start:序列的起始迭代器。end:序列的结束迭代器(不包含)。返回值:如果存在下一个或前一个排列,返回true,并更新序列。如果当前排列已经是字典序的最大或最小排列,返回false。原创 2025-02-20 00:33:22 · 913 阅读 · 2 评论 -
C++中string常用方法操作指南(后续补充)
include <string> // 必须包含这个头文件// 1. 定义一个空字符串// 2. 直接初始化// 使用等号初始化// 使用括号初始化// 3. 重复字符初始化// 结果是 "AAAAA"// 4. 从另一个字符串的子串初始化// 从s2的第1个字符开始,取3个字符,结果是 "ell"// 输出: Hello Worldreturn 0;原创 2025-02-17 10:43:05 · 965 阅读 · 0 评论 -
STL 算法库中的 min_element 和 max_element
按绝对值大小来寻找最小值。原创 2025-03-01 15:24:50 · 552 阅读 · 0 评论 -
打印及判断回文数组、打印N阶数组、蛇形矩阵
左上和右下是对称的。所以先考虑左上打印,mini1j1考虑右下打印minn−in−j然后两者重合一下,取最小值,min左上,右下,代码如下int。原创 2025-02-16 15:38:19 · 929 阅读 · 0 评论 -
完全数和质数算法详解
是指一个正整数,它等于其所有真约数(即除了自身以外的所有正因数)之和。例如,6 是一个完全数,因为它的真约数是 1、2 和 3,且 1 + 2 + 3 = 6。原创 2025-02-28 09:39:00 · 1330 阅读 · 0 评论 -
高精度四则运算
全篇写得有点简陋,可能需要有一定基础才能看懂,主要是自己复习算法的过程中记录一下,复习&熟悉一下高精度。原创 2025-02-15 23:07:07 · 322 阅读 · 0 评论 -
曼哈顿距离:菱形打印与路径规划
常规方法的核心思想是通过控制空格和星号()的数量来构造菱形的每一行。原创 2025-02-14 18:31:17 · 1010 阅读 · 0 评论 -
平方数列与立方数列求和的数学推导
先上结论原创 2025-02-14 00:05:55 · 974 阅读 · 0 评论 -
质数筛三种算法详解:从埃氏筛法到线性筛法与欧拉筛法
先上总结:1. 埃拉托色尼筛法:简单易懂,适合初学者学习。2. 线性筛法:效率更高,时间复杂度 O(n)。3. 欧拉筛法:与线性筛法类似,核心思想是确保每个合数只被其最小质因数筛除一次,避免重复操作。原创 2025-02-13 10:51:28 · 839 阅读 · 0 评论 -
求n个数的最大值与最小值
我们经常需要找出两个数中的最大值。通常,我们会使用if来实,但是如果多的话肯定就不好使了。所以这里从两个数的最大值和最小值公式出发,推出如何求解n个数的最大值和最小值,并提供cpp、go、爪哇的代码。原创 2025-02-13 02:01:42 · 746 阅读 · 0 评论