首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

算法基础-基础算法

快速排序 01.快速排序 题目描述 给定你一个长度为 n整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。...第二行包含 n 个整数(所有整数均在 1∼10^9 范围内),表示整个数列。 输出格式 输出共一行,包含 n 个整数,表示排好序数列。...请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n个整数(所有整数均在 1∼10^9 范围内),表示整个数列。...03.差分 04.差分矩阵 双指针算法 01.最长连续不重复子序列 题目描述 给定一个长度为 n整数序列,请找出最长包含重复连续区间,输出它长度。...输入格式 第一行包含整数 n。 第二行包含 n 个整数(均在 0 \sim 10^5范围内),表示整数序列。 输出格式 共一行,包含一个整数,表示最长包含重复连续区间长度。

1.5K40

算法基础(六)| 双指针算法及模板应用

常见遍历一共是双重循环,复杂度是O( n^2 ) 但是双指针算法虽然是看起来是双重循环,但是实际上每个指针移动次数是超过O(n),两个指针总次数超过O(2n)。...给定一个长度为 nn 整数序列,请找出最长包含重复连续区间,输出它长度。...输入格式 第一行包含整数 nn。 第二行包含 nn 个整数(均在 0∼1050∼105 范围内),表示整数序列。 输出格式 共一行,包含一个整数,表示最长包含重复连续区间长度。...j最远能到什么地方,因为需要计算是无重复个数,因此j和i之间无重复。...这里如果j > i时候,一定了要求,区间里一个都没有了,就会不满足S[a[i]] > 1,因此本题这个比较条件j <= i可以写。

70110
您找到你想要的搜索结果了吗?
是的
没有找到

双指针算法及模板应用

给定一个长度为 n 整数序列,请找出最长包含重复连续区间,输出它长度。...输入格式 第一行包含整数 n。 第二行包含 n 个整数(均在 0∼10^5范围内),表示整数序列。 输出格式 共一行,包含一个整数,表示最长包含重复连续区间长度。...这里如果j > i时候,一定了要求,区间里一个都没有了,就会不满足S[a[i]] > 1,因此本题这个比较条件j <= i可以写。...请你求出满足 A[i]+B[j]=x 对 (i,j)。 数据保证有唯一解。 输入格式 第一行包含三个整数 n,m,x,分别表示 A 长度,B 长度以及目标值 x。...第二行包含 n 个整数,表示数组 A。 第三行包含 m 个整数,表示数组 B。 输出格式 共一行,包含两个整数 i 和 j。 数据范围 数组长度超过 10^5 。 同一数组内元素各不相同。

56160

最长连续不重复子序列(双指针)

题意描述 给定一个长度为n整数序列,请找出最长包含重复数字连续区间,输出它长度。输入格式 第一行包含整数n。 第二行包含n个整数(均在0~100000范围内),表示整数序列。...输出格式 共一行,包含一个整数,表示最长包含重复数字连续子序列长度。...数据范围 1≤n≤100000 输入样例: 5 1 2 2 3 5 输出样例: 3 思路 这道题采用双指针做法,对于一个数字,以该数字为结尾,然后向前计算满足包含重复数字最大长度。...使用双指针好处是,可以让时间复杂度降到O(N)。...我们可以使用一个数组来统计每个数字出现次数,如果出现次数大于1,则说明已经有重复数字出现,记录下当前区间长度,并且将之前统计数字清零,然后输出最终答案即可。

74520

【蓝桥杯省赛】冲刺练习题【数组】倒计时【13】天

输入格式   输入第一行包含两个整数n, m。第二行,共n个整数。 输出格式   输出1行,包含一个整数,连续m个数之和最大值。...1<=n<=200 输入格式   第一行为一个整数n。   第二行包含n个整数,为待排序,每个整数绝对值小于10000。 输出格式   输出一行,按从小到大顺序输出排序后数列。...他还分析了不同饭店不同时间客户需求,得到第i个饭店在第j个时间内,平均每位客户消费Cij元。...为了创设品牌形象,Chakra决定每个饭店每天只选择一个时间营业,每个服务员至多接待一位顾客(若顾客多于服务员,超过部分顾客当天就无法在该店消费了)。   企业家目的终究还是获利。...接下来m行,每行四个整数L1,R1,L2,R2,意义如上 输出格式   m行,每行R2-L2+1个整数,第一个整数表示第L2个在数列第L1到R1个中不大于它个数,第一个整数表示第L2+1个在数列第

22810

相关题目汇总分析总结

123变为321,-123变为-321,在32位整数范围内,并且001要成为1 String to Integer (atoi)/字符串转整数 (atoi) 写出函数,将str转为int,需要考虑所有可能输入情况...Palindrome Number/回文 判断一个整数(integer)是否是回文,不要使用额外空间。...Longest Common Prefix/最长公共前缀 寻找一组字符串公共起始子串 Next Permutation/下一个排列 寻找一组排序下一个序列 Valid Sudoku/...Length of Last Word/最后一个单词长度 找出最后一个单词长度。 Plus One/加一 给一个由包含一串数字列表组成非负整数加上一。...Longest Consecutive Sequence/最长连续序列 给定一组无序整数,找出其中连续整数最长长度。

1.1K20

动态规划专题刷题记录②:最长上升子序列

最长上升子序列 1.题面 题目链接 给定一个长度为N数列,求数值严格单调递增子序列长度最长是多少。 输入格式 第一行包含整数N。 第二行包含N个整数,表示完整序列。...最长上升子序列 II 1.题面 题目链接 给定一个长度为N数列,求数值严格单调递增子序列长度最长是多少。 输入格式 第一行包含整数N。 第二行包含N个整数,表示完整序列。...输入格式 共一行,输入导弹依次飞来高度。 输出格式 第一行包含一个整数,表示最多能拦截导弹。 第二行包含一个整数,表示要拦截所有导弹最少要配备系统。...小沐沐说,对于两个数列A和B,如果它们都包含位置不一定连续,且数值是严格递增,那么称这一是两个数列公共上升子序列,而所有的公共上升子序列中最长就是最长公共上升子序列了。...image.png 可以看出,状态可以分为包含a[i]和包含a[i]两种,包含a[i]状态可以用f[i-1,j]表示。

99020

《算法竞赛进阶指南》0x12 队列

Container 为用于存储元素底层容器类型。如果指定,则默认使用 std::deque 作为底层容器。 STL 中 queue 容器提供了一众成员函数以供调用。...接下来 t 行,每行输入一个小组描述,第一个数表示这个小组的人数,接下来数表示这个小组的人编号。 编号是 0 到 999999 范围内整数。...需注意:测试用例最多可包含 200000 个命令,因此小组队列实现应该是高效: 入队和出队都需要使用常数时间。...每一秒,神刀手会在所有的蚯蚓中,准确地找到最长那一只,将其切成两。 若有多只最长,则任选一只。 神刀手切开蚯蚓位置由有理 p 决定。...,从中找出一长度超过 m 连续子序列,使得子序列中所有数和最大。

61240

【简单】最长连续不重复子序列

给定一个长度为 n 整数序列,请找出最长包含重复数字连续子序列,输出它长度。 输入格式 第一行包含整数 n。...第二行包含 n 个整数(均在 {\rm{0}}\sim100000 范围内),表示整数序列。 输出格式 共一行,包含一个整数,表示最长包含重复数字连续子序列长度。...数据范围 {\rm{1}} \le {\rm{n}} \le {\rm{100000}} 输入样例 5 1 2 2 3 5 输出样例 3 题解 (双指针)O(n) 用 i指针进行枚举时候,记录对应数出现次数...每次移动i指针都将结果更新为较大一个,即可实现题目要求。...= max(res, i - j + 1); //求最大子序列长度 } cout << res << endl; return 0; } 本作品采用知识共享署名-非商业性使用

98410

重学数据结构(五、串)

第一轮:模式串和主串第一个等长子串比较,发现前5个字符都是匹配,第6个字符匹配,是一个“字符”: ?...接着从上面的字符“A”开始比较。 ? “A” 仍然是个字符,这时候,匹配前缀缩短了,变成了“GTC”。 ? 按照第一轮思路,重新确定最长可匹配前缀子串和最长可匹配后缀子串。 ?...当模式串第一个字符就和主串匹配时,并不存在已匹配前缀子串,更不存在最长可匹配前缀子串。这种情况对应next数组下标是0,next[0]元素值也是0。...该算法有两种启发式策略⎯⎯借助字符( Bad Character)和好后缀( Good Suffix)确定移动距离⎯⎯也可将二者结合起来,同时采用。...我们继续使用字符规则”。 从后向前比对字符,我们发现后面三个字符都是匹配,到了第四个字符时候,发现字符G: ?

60720

HAPPE+ER软件:标准化事件相关电位ERP预处理pipeline

2.5 滤波(100 Hz低通)HAPPE+ER在伪迹抑制和通道检测(如果选择)之前,应用一个100 Hz自动低通滤波器,只评估在神经活动频率范围内数据。...简单地说,ICA将跨电极数据聚类为独立成分,可以从神经时间序列中分离伪迹,而小波阈值使用系数解析频率范围内数据,该系数可以检测电极数据或独立成分时间局部伪迹波动(详细解释见Gabard-Durnam...随后,对于每个中标记为通道数据用球形插值,允许用户保持最大数量可用,同时仍然在单个内最大化成分拒绝。...2.12 剔除(推荐)根据振幅、联合概率或两个准则拒绝。基于振幅剔除有助于消除残留高振幅伪迹(例如,眨眼、来自干燥电极漂移、连续)。...如果选择剔除,HAPPE+ER也保存剔除后数据。这个阶段所有文件都包含单个试次数据(在预处理过程中不进行试验平均)。

64300

Go 数据结构和算法篇(十二):字符串匹配之 KMP 算法

在模式串和主串匹配过程中,我们把不能匹配那个字符仍然叫作「字符」,把已经匹配那段字符串叫作「好前缀」: KMP匹配算法图示 在模式串和主串匹配过程中,当遇到字符后,对于已经比对过好前缀,...这里,我们要解释几个概念: 后缀子串:以某个字符串最后一个字符为尾字符子串(包含字符串自身),比如上面的 ababa,后缀子串为 baba、aba、ba、a; 前缀子串:以某个字符串第一个字符为首字符子串...(包含字符串自身),还是以 ababa 为例,前缀子串为 a、aba、abab; 最长可匹配后缀子串:后缀子串与前缀子串最长可匹配子串,也可叫做共有子串,以 ababa 为例,自然是 aba 了,长度为...最长可匹配前缀子串和最长可匹配后缀子串肯定是一样。 假设字符所在位置是 j,最长可匹配后缀子串长度为 k,则模式串需要后移位数为 j-k。...每当我们遇到字符,就将模式串后移 j-k 位,直到模式串与对应主串字符完全匹配;如果移到最后还是匹配,则返回 -1。这就是 KMP 算法核心思想。

58210

Java8 Stream

Java8Stream是对集合对象功能增强,专注与对集合对象进行各种非常便利、高效聚合操作,或大批量数据操作。...Stream和迭代器又有不同,Stream可以并行操作,即将数据分为多,其中每一个都在不同线程中处理,然后将结果一起输出。 先看下面一个例子: ?...使用 使用Stream步骤如下: 创建Stream 通过一个或多个中间操作将流转换成另一个流 通过中止操作获取结果. 1.创建Stream 集合类Collection: stream(): 创建串行流...int,int...): 返回指定数字串行流 of(int): 返回包含指定数字串行流 range(start, end): 返回从start到end整数流, 前闭后开 rangeClosed(start...整数流, 前闭后开 rangeClosed(start, end): 返回从start到end整数流, 前闭后闭 Random: 随机, 有如下方法生成流(不是静态方法) doubles(): 返回无限随机

66630

【算法】双指针、位运算、离散化、合并区间

1.双指针 双指针算法可以优化时间复杂度,双指针,指的是在遍历对象过程中,不是普通使用单个指针进行访问,而是使用两个相同方向( 快慢指针 )或者相反方向( 对撞指针 )指针进行扫描,从而达到相应目的...给定一个长度为 n 整数序列,请找出最长包含重复连续区间,输出它长度。 输入格式 第一行包含整数 n。 第二行包含 n 个整数(均在 0∼1050∼105 范围内),表示整数序列。...输出格式 共一行,包含一个整数,表示最长包含重复连续区间长度。...输入格式 第一行包含整数 nn。 第二行包含 nn 个整数,表示整个数列。 输出格式 共一行,包含 nn 个整数,其中第 ii 个数表示数列中第 ii 个数二进制表示中 11 个数。...现在,我们首先进行 n 次操作,每次操作将某一位置 x 上加 c。 接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r][l,r] 之间所有数和。

17320

acwing-最长上升公共子序列(动态规划)

原题连接 熊大妈奶牛在小沐沐熏陶下开始研究信息题目。 小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们研究最长公共上升子序列了。...小沐沐说,对于两个数列 A 和 B,如果它们都包含位置不一定连续,且数值是严格递增,那么称这一是两个数列公共上升子序列,而所有的公共上升子序列中最长就是最长公共上升子序列了。...奶牛半懂不懂,小沐沐要你来告诉奶牛什么是最长公共上升子序列。 不过,只要告诉奶牛它长度就可以了。 数列 A 和 B 长度均不超过 3000。...输入格式 第一行包含一个整数 N,表示数列 A,B 长度。 第二行包含 N 个整数,表示数列 A。 第三行包含 N 个整数,表示数列 B。...输出格式 输出一个整数,表示最长公共上升子序列长度。 数据范围 1≤N≤3000,序列中数字均不超过 231−1。

31250

Leetcode 周赛题解222

将数组分成三个子数组方案 我们称一个分割整数数组方案是 好 ,当它满足: 数组被分成三个 非空 连续子数组,从左至右分别命名为 left , mid , right 。...提示: 3 <= nums.length <= 10^5 0 <= nums[i] <= 10^4 思路 要求将序列分成三,每段数值之和递减合法方案。 我们枚举第一位置,然后二分两次。...得到子序列最少操作次数 给你一个数组 target ,包含若干 互不相同 整数,以及另一个整数数组 arr ,arr 可能 包含重复元素。...注意到target中包含重复元素,那么其实arr中那些没在target中出现元素都可以扔掉不管。 因为target包含重复元素,我们将元素重新编号。...最后这个最长公共子序列长度其实就等于arr最长上升子序列长度。

53410

枚举(蓝桥练习)

三、循环枚举解空间 1.首先确定解空间维度,即问题中需要枚举变量个数。例如当题目要求是满足条件数字时,我们可以循环枚举某个范围内数字。...输入描述 输入第一行包含一个整数 n。 第二行包含三个整数 a,b,c,相邻两个数之间用一个空格分隔。...请问,在1到n中,所有这样和是多少? 输入描述 输入格式: 输入一行包含两个整数 n(1≤n≤ 104) 输出描述 输出一行,包含一个整数,表示满足条件和。...每个测试用例第一行包含两个整数 n 和 k(1 ≤ k≤n< 104),第二行包含几 个整数 a1,a2,···,an(1 < ai< 60),分别表示每个房子最初颜色。...保证所有测试用例中 n 总和超过 10000。

13911

Python练习【3】【罗马数字转换查

但 4 写作 IIII,而是 IV。数字 1 在数字 5 左边,所表示等于大数减小数得到数值 4 。同样地,数字 9 表示为 IX。...(500) 和 M (1000) 左边,来表示 400 和 900 给定一个罗马数字,将其转换成整数。...输入确保在 1 到 3999 范围内 示例: 示例 1: 输入: “III” 输出: 3 示例 2: 输入: “IV” 输出: 4 示例 3: 输入: “IX” 输出: 9 示例 4: 输入: “...M = 1000, CM = 900, XC = 90 and IV = 4. ---- 编程思路: 罗马数字一般来说小数在大数后面,各数字译成对应十进制相加即可 若小数在大数前面,则取对应小数相反相加即可...---- 题目2:公共前缀 编写一个函数来查找字符串数组中最长公共前缀 如果不存在最长公共前缀,返回空字符串 '' 说明:所有输入只包含小写字母 a-z 示例 1: 输入: [“flower

1.5K20

Java8新特性时间日期库DateTime API及示例

Java8常用日期和时间类包含LocalDate、LocalTime、Instant、Duration、Period、LocalDateTime以及ZonedDateTime等。...LocalDate:包含时间日期,比如2019-10-14。可以用来存储生日,周年纪念日,入职日期等。 LocalTime:与LocalDate想对照,它是包含日期时间。...学习最佳途径就是去实践它,现在我们示例形式来讲每个知识点进行讲解。 LocalDate-如何获得日期 LocalDate类内只包含日期,包含具体时间。只需要表示日期而包含时间,就可以使用它。...Duration-获取时间 Duration内部实现与Instant类似,但Duration表示时间,通过between方法创建。...时间与日期API中所有类都是线程安全。 明确定义了基本时间与日期概念。

1.2K40

动态规划专题——线性DP

最长上升子序列 II 原题链接 描述 给定一个长度为 N 数列,求数值严格单调递增子序列长度最长是多少。 输入格式 第一行包含整数 N。 第二行包含 N 个整数,表示完整序列。...输入导弹依次飞来高度(雷达给出高度数据是不大于30000整数,导弹超过1000),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。...输入格式 共一行,输入导弹依次飞来高度。 输出格式 第一行包含一个整数,表示最多能拦截导弹。 第二行包含一个整数,表示要拦截所有导弹最少要配备系统。...数据范围 雷达给出高度数据是不大于 30000 整数,导弹超过 1000。...小沐沐说,对于两个数列 A 和 B,如果它们都包含位置不一定连续,且数值是严格递增,那么称这一是两个数列公共上升子序列,而所有的公共上升子序列中最长就是最长公共上升子序列了。

50720
领券