二分查找算法是最常用的一种高效算法,所以本文将常见的情形做一个总结,得到一个二分查找的模板,方便应对各种二分查找中的问题。 当前有一个 有序 的数列: 模板 该模板可以在数列中查找一个数target,如果target在数列中存在,输出target 第一次出现 位置下标,如果不存在,则输出 插入到数列 ...
分类:
其他好文 时间:
2018-04-08 16:02:52
阅读次数:
95
2018-03-17 14:58:38 问题描述:已知一个2维矩阵,其中的元素每一行从左至右依次增加,每一列从上到下依次增加。即对于矩阵Table有Table[i][j] ≤Table[i][j + 1], Table[i][j] ≤ Table[i + 1][j],我们也称这样的矩阵为杨氏矩阵。给 ...
分类:
其他好文 时间:
2018-03-17 16:09:04
阅读次数:
132
转自:http://blog.csdn.net/u010983881/article/details/77503519 题目 编写两个任意位数的大数相乘的程序,给出计算结果。比如: 题目描述: 输出两个不超过100位的大整数的乘积。 输入: 输入两个大整数,如1234567 和 123 输出: 输出 ...
分类:
编程语言 时间:
2018-03-13 14:01:41
阅读次数:
203
分治算法 一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并 ...
分类:
编程语言 时间:
2018-03-04 18:09:11
阅读次数:
186
首先,介绍一下AC自动机(Aho-Corasick automaton),是一种在一个文本串中寻找每一个已给出的模式串的高效算法。 在学习AC自动机之前,你需要先学习Trie树和KMP算法,因为AC自动机正式利用并结合了两者的思想。 说到实际的不同,其实AC自动机只是在Trie树上引入了一个类似KM ...
分类:
其他好文 时间:
2018-01-29 17:42:15
阅读次数:
256
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排 ...
分类:
编程语言 时间:
2017-11-21 22:04:24
阅读次数:
205
计算机科学中,有一些关于多项式求值的问题。对于多项式求值问题,我们最容易想到的算法是求出每一项的值然后把所求的值累加起来,这种算法的时间和空间效率都不高,对于数据规模不大的题目来说由于其直观、简单很容易被大家采纳,可一旦数据规模过大时,这种算法就显得无能为力了,下面介绍一种解决这类求值问题的高效算法 ...
分类:
其他好文 时间:
2017-11-10 15:12:45
阅读次数:
112
请设计一个高效算法,查找数组中未出现的最小正整数。 给定一个整数数组A和数组的大小n,请返回数组中未出现的最小正整数。保证数组大小小于等于500。 测试样例: /*分析: * 最小的没有出现的正整数 * 如果1没有出现 那么最小结果为1 * 如果1到n都出现那么最下的结果为n+1 * 因此结果的范围 ...
分类:
编程语言 时间:
2017-07-30 19:04:46
阅读次数:
233
题目描述 对于两个字符串A,B。请设计一个高效算法,找到B在A中第一次出现的起始位置。若B未在A中出现,则返回-1。 给定两个字符串A和B,及它们的长度lena和lenb,请返回题目所求的答案。 测试样例: "acbc",4,"bc",2 返回:2 对于两个字符串A,B。请设计一个高效算法,找到B在 ...
分类:
其他好文 时间:
2017-07-30 19:03:08
阅读次数:
120
问题描写叙述 试编写在带头结点的单链表L中删除一个最小值结点的高效算法(如果最小值结点是唯一的) 算法思想 在链表中删除最小值的前提是必须找到最小值元素是哪个结点,因此设置指针p对全部结点进行遍历,使用指针min指向最小值结点。可是由于涉及到删除操作,明显在仅仅有指针min和指针p的条件下删除操作是 ...
分类:
其他好文 时间:
2017-06-16 10:06:46
阅读次数:
142