题目描述:对于一个字符串,请设计一个高效算法,找到字符串的最长无重复字符的子串长度。给定一个字符串A及它的长度n,请返回它的最长无重复字符子串长度。保证A中字符全部为小写英文字符,且长度小于等于500。测试样例:"abcdbefgdchi",12返回:8这个题我研究了好半天,确实不..
分类:
其他好文 时间:
2016-09-03 07:32:48
阅读次数:
198
题目描述 请设计一个高效算法,再给定的字符串数组中,找到包含"Coder"的字符串(不区分大小写),并将其作为一个新的数组返回。结果字符串的顺序按照"Coder"出现的次数递减排列,若两个串中"Coder"出现的次数相同,则保持他们在原数组中的位置关系。 给定一个字符串数组A和它的大小n,请返回结果 ...
分类:
其他好文 时间:
2016-09-01 00:06:20
阅读次数:
95
对于一个数组,请设计一个高效算法计算需要排序的最短子数组的长度。 给定一个int数组A和数组的大小n,请返回一个二元组,代表所求序列的长度。(原序列位置从0开始标号,若原序列有序,返回0)。保证A中元素均为正整数。 ...
分类:
编程语言 时间:
2016-08-23 16:31:01
阅读次数:
177
题意:给定 n 个数,问你连续的最长的序列是几个。 析:从头扫一遍即可。 代码如下: ...
分类:
编程语言 时间:
2016-07-30 10:35:50
阅读次数:
181
KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。 一.简单匹配算法 先来看一个简单匹配算法的函数: int Index_BF ( char S [ ], char T [ ], ...
分类:
其他好文 时间:
2016-07-24 11:51:15
阅读次数:
165
这个RMQ算法是专门针对于求最值的高效算法。其思路比较简单,先是利用DP预处理,之后便是查询,方法如下: 假如我们需要查询的区间为(i,j),那么我们需要找到覆盖这个闭区间(左边界取i,右边界取j)的最小幂(可以重复,比如查询5,6,7,8,9,我们可以查询5678和6789)。 因为这个区间的长度 ...
分类:
编程语言 时间:
2016-07-14 01:27:54
阅读次数:
138
NOIP2013 提高组 day2 第三题 Kruskal算法是图论里求最小生成树的高效算法 借用并查集来巧妙的算最小生成树 思路是这样的: 先把所有的边排序,然后根据需要来依次合并权值最大(小)边的端点(或是计算路线中所有边中的最小值的最大值) 注 但是Kruskal并不能全过,只过得到60%,还 ...
分类:
其他好文 时间:
2016-07-12 22:56:04
阅读次数:
132
分治算法 一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并 ...
分类:
编程语言 时间:
2016-06-15 15:42:14
阅读次数:
300
本文是【常用算法思路分析系列】的第二篇,分析字符串相关的高频题目。第一篇是关于排序相关的高频题,还没有看的同学请移步:【常用算法思路分析系列】排序高频题集。
本文分析的高频题目有,1、KMP字符匹配;2、判断是否为变形词;3、旋转词;4、字符串逆序调整;5、字符串部分整体交换;6、字符拼接得到最小字典序字符串;7、空格替换;8、合法括号序列判断;9、最长无重复字符子串。
对于两棵彼此独立的二叉树A和B,请编写一个高效算法,检查A中是否存在一棵子树与B树的拓扑结构完全相同,即给定两棵二叉树的头结点A和B,请返...
分类:
编程语言 时间:
2016-05-17 08:37:20
阅读次数:
413
最近在牛客上整理常用的一些算法思路,【常用算法思路分析系列】主要是针对一些高频算法笔试、面试题目的解题思路进行总结,大部分也给出了具体的代码实现,本篇文章是对排序相关题目的思路分析。(1)对一个基本有序的有序的数组排序,选择哪种排序算法?(2)判断数组中是否有重复值,要求空间复杂度为O(1);(3)把两个有序数组合并成一个数组,第一个数组空间正好可以容纳两个数组的元素;(4)荷兰国旗问题;(5)有序矩阵(二维数组)查找;(6)最短排序子数组:对于一个数组,请设计一个高效算法计算需要排序的最短子数组的长度;(...
分类:
编程语言 时间:
2016-05-16 09:31:32
阅读次数:
365