快速排序 01.快速排序 题目描述 给定你一个长度为 n的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。...第二行包含 n 个整数(所有整数均在 1∼10^9 范围内),表示整个数列。 输出格式 输出共一行,包含 n 个整数,表示排好序的数列。...请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n个整数(所有整数均在 1∼10^9 范围内),表示整个数列。...03.差分 04.差分矩阵 双指针算法 01.最长连续不重复子序列 题目描述 给定一个长度为 n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。...输入格式 第一行包含整数 n。 第二行包含 n 个整数(均在 0 \sim 10^5范围内),表示整数序列。 输出格式 共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。
常见的遍历一共是双重循环,复杂度是O( n^2 ) 但是双指针算法虽然是看起来是双重循环,但是实际上每个指针移动的次数是不超过O(n)的,两个指针的总次数不超过O(2n)。...给定一个长度为 nn 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。...输入格式 第一行包含整数 nn。 第二行包含 nn 个整数(均在 0∼1050∼105 范围内),表示整数序列。 输出格式 共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。...j最远能到什么地方,因为需要计算的是无重复的个数,因此j和i之间无重复的数。...这里如果j > i的时候,一定了要求,区间里一个数都没有了,就会不满足S[a[i]] > 1,因此本题这个比较条件j <= i可以不写。
给定一个长度为 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 。 同一数组内元素各不相同。
题意描述 给定一个长度为n的整数序列,请找出最长的不包含重复数字的连续区间,输出它的长度。输入格式 第一行包含整数n。 第二行包含n个整数(均在0~100000范围内),表示整数序列。...输出格式 共一行,包含一个整数,表示最长的不包含重复数字的连续子序列的长度。...数据范围 1≤n≤100000 输入样例: 5 1 2 2 3 5 输出样例: 3 思路 这道题采用双指针做法,对于一个数字,以该数字为结尾,然后向前计算满足不包含重复数字的最大长度。...使用双指针的好处是,可以让时间复杂度降到O(N)。...我们可以使用一个数组来统计每个数字出现的次数,如果出现的次数大于1,则说明已经有重复的数字出现,记录下当前区间的长度,并且将之前统计的数字清零,然后输出最终答案即可。
输入格式 输入的第一行包含两个整数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个数在数列第
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.题面 题目链接 给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。 输入格式 第一行包含整数N。 第二行包含N个整数,表示完整序列。...最长上升子序列 II 1.题面 题目链接 给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。 输入格式 第一行包含整数N。 第二行包含N个整数,表示完整序列。...输入格式 共一行,输入导弹依次飞来的高度。 输出格式 第一行包含一个整数,表示最多能拦截的导弹数。 第二行包含一个整数,表示要拦截所有导弹最少要配备的系统数。...小沐沐说,对于两个数列A和B,如果它们都包含一段位置不一定连续的数,且数值是严格递增的,那么称这一段数是两个数列的公共上升子序列,而所有的公共上升子序列中最长的就是最长公共上升子序列了。...image.png 可以看出,状态可以分为包含a[i]和不包含a[i]两种,不包含a[i]的状态可以用f[i-1,j]表示。
Container 为用于存储元素的底层容器类型。如果不指定,则默认使用 std::deque 作为底层容器。 STL 中的 queue 容器提供了一众成员函数以供调用。...接下来 t 行,每行输入一个小组描述,第一个数表示这个小组的人数,接下来的数表示这个小组的人的编号。 编号是 0 到 999999 范围内的整数。...需注意:测试用例最多可包含 200000 个命令,因此小组队列的实现应该是高效的: 入队和出队都需要使用常数时间。...每一秒,神刀手会在所有的蚯蚓中,准确地找到最长的那一只,将其切成两段。 若有多只最长的,则任选一只。 神刀手切开蚯蚓的位置由有理数 p 决定。...,从中找出一段长度不超过 m 的连续子序列,使得子序列中所有数的和最大。
给定一个长度为 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; } 本作品采用知识共享署名-非商业性使用
第一轮:模式串和主串的第一个等长子串比较,发现前5个字符都是匹配的,第6个字符不匹配,是一个“坏字符”: ?...接着从上面的坏字符“A”开始比较。 ? “A” 仍然是个坏字符,这时候,匹配前缀缩短了,变成了“GTC”。 ? 按照第一轮的思路,重新确定最长可匹配前缀子串和最长可匹配后缀子串。 ?...当模式串的第一个字符就和主串不匹配时,并不存在已匹配前缀子串,更不存在最长可匹配前缀子串。这种情况对应的next数组下标是0,next[0]的元素值也是0。...该算法有两种启发式策略⎯⎯借助坏字符( Bad Character)和好后缀( Good Suffix)确定移动的距离⎯⎯也可将二者结合起来,同时采用。...我们继续使用“坏字符规则”。 从后向前比对字符,我们发现后面三个字符都是匹配的,到了第四个字符的时候,发现坏字符G: ?
2.5 滤波(100 Hz低通)HAPPE+ER在伪迹抑制和坏通道检测(如果选择)之前,应用一个100 Hz的自动低通滤波器,只评估在神经活动的频率范围内的数据。...简单地说,ICA将跨电极的数据聚类为独立的成分,可以从神经时间序列中分离伪迹,而小波阈值使用系数解析频率范围内的数据,该系数可以检测电极数据或独立成分的时间局部伪迹波动(详细解释见Gabard-Durnam...随后,对于每个段中标记为坏的通道的数据用球形插值,允许用户保持最大数量可用段,同时仍然在单个段内最大化成分拒绝。...2.12 坏段剔除(推荐)根据振幅、联合概率或两个准则拒绝坏段。基于振幅剔除有助于消除残留的高振幅伪迹(例如,眨眼、来自干燥电极的漂移、不连续)。...如果选择坏段剔除,HAPPE+ER也保存坏段剔除后数据。这个阶段的所有文件都包含单个试次的数据(在预处理过程中不进行试验平均)。
在模式串和主串匹配的过程中,我们把不能匹配的那个字符仍然叫作「坏字符」,把已经匹配的那段字符串叫作「好前缀」: KMP匹配算法图示 在模式串和主串匹配的过程中,当遇到坏字符后,对于已经比对过的好前缀,...这里,我们要解释几个概念: 后缀子串:以某个字符串最后一个字符为尾字符的子串(不包含字符串自身),比如上面的 ababa,后缀子串为 baba、aba、ba、a; 前缀子串:以某个字符串第一个字符为首字符的子串...(不包含字符串自身),还是以 ababa 为例,前缀子串为 a、aba、abab; 最长可匹配后缀子串:后缀子串与前缀子串最长可匹配子串,也可叫做共有子串,以 ababa 为例,自然是 aba 了,长度为...最长可匹配前缀子串和最长可匹配后缀子串肯定是一样的。 假设坏字符所在位置是 j,最长可匹配后缀子串长度为 k,则模式串需要后移的位数为 j-k。...每当我们遇到坏字符,就将模式串后移 j-k 位,直到模式串与对应主串字符完全匹配;如果移到最后还是不匹配,则返回 -1。这就是 KMP 算法的核心思想。
Java8中的Stream是对集合对象功能的增强,专注与对集合对象进行各种非常便利、高效的聚合操作,或大批量数据操作。...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(): 返回无限的随机数流
1.双指针 双指针的算法可以优化时间复杂度,双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向( 快慢指针 )或者相反方向( 对撞指针 )的指针进行扫描,从而达到相应的目的...给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。 输入格式 第一行包含整数 n。 第二行包含 n 个整数(均在 0∼1050∼105 范围内),表示整数序列。...输出格式 共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。...输入格式 第一行包含整数 nn。 第二行包含 nn 个整数,表示整个数列。 输出格式 共一行,包含 nn 个整数,其中的第 ii 个数表示数列中的第 ii 个数的二进制表示中 11 的个数。...现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。 接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r][l,r] 之间的所有数的和。
原题连接 熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目。 小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们研究最长公共上升子序列了。...小沐沐说,对于两个数列 A 和 B,如果它们都包含一段位置不一定连续的数,且数值是严格递增的,那么称这一段数是两个数列的公共上升子序列,而所有的公共上升子序列中最长的就是最长公共上升子序列了。...奶牛半懂不懂,小沐沐要你来告诉奶牛什么是最长公共上升子序列。 不过,只要告诉奶牛它的长度就可以了。 数列 A 和 B 的长度均不超过 3000。...输入格式 第一行包含一个整数 N,表示数列 A,B 的长度。 第二行包含 N 个整数,表示数列 A。 第三行包含 N 个整数,表示数列 B。...输出格式 输出一个整数,表示最长公共上升子序列的长度。 数据范围 1≤N≤3000,序列中的数字均不超过 231−1。
将数组分成三个子数组的方案数 我们称一个分割整数数组的方案是 好的 ,当它满足: 数组被分成三个 非空 连续子数组,从左至右分别命名为 left , mid , right 。...提示: 3 <= nums.length <= 10^5 0 <= nums[i] <= 10^4 思路 要求将序列分成三段,每段数值之和不递减的合法方案数。 我们枚举第一段的位置,然后二分两次。...得到子序列的最少操作次数 给你一个数组 target ,包含若干 互不相同 的整数,以及另一个整数数组 arr ,arr 可能 包含重复元素。...注意到target中不包含重复的元素,那么其实arr中那些没在target中出现的元素都可以扔掉不管。 因为target不包含重复的元素,我们将元素重新编号。...最后这个最长公共子序列的长度其实就等于arr的最长上升子序列的长度。
三、循环枚举解空间 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。
但 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
Java8常用的日期和时间类包含LocalDate、LocalTime、Instant、Duration、Period、LocalDateTime以及ZonedDateTime等。...LocalDate:不包含时间的日期,比如2019-10-14。可以用来存储生日,周年纪念日,入职日期等。 LocalTime:与LocalDate想对照,它是不包含日期的时间。...学习最佳的途径就是去实践它,现在我们示例的形式来讲每个知识点进行讲解。 LocalDate-如何获得日期 LocalDate类内只包含日期,不包含具体时间。只需要表示日期而不包含时间,就可以使用它。...Duration-获取时间段 Duration的内部实现与Instant类似,但Duration表示时间段,通过between方法创建。...时间与日期API中的所有类都是线程安全的。 明确定义了基本的时间与日期概念。
最长上升子序列 II 原题链接 描述 给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。 输入格式 第一行包含整数 N。 第二行包含 N 个整数,表示完整序列。...输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。...输入格式 共一行,输入导弹依次飞来的高度。 输出格式 第一行包含一个整数,表示最多能拦截的导弹数。 第二行包含一个整数,表示要拦截所有导弹最少要配备的系统数。...数据范围 雷达给出的高度数据是不大于 30000 的正整数,导弹数不超过 1000。...小沐沐说,对于两个数列 A 和 B,如果它们都包含一段位置不一定连续的数,且数值是严格递增的,那么称这一段数是两个数列的公共上升子序列,而所有的公共上升子序列中最长的就是最长公共上升子序列了。
领取专属 10元无门槛券
手把手带您无忧上云