![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
chvalrous
不忘初心,方得始终.
展开
-
AC自动机 算法详解(图解)及模板
本文转载自:https://blog.csdn.net/bestsort/article/details/82947639要学AC自动机需要自备两个前置技能:KMP和trie树(其实个人感觉不会kmp也行,失配指针的概念并不难)其中,KMP是用于一对一的字符串匹配,而trie虽然能用于多模式匹配,但是每次匹配失败都需要进行回溯,如果模式串很长的话会很浪费时间,所以AC自动机应运而生,如同M...转载 2020-01-03 11:28:57 · 701 阅读 · 0 评论 -
Majority Element
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority element原创 2015-04-19 22:40:12 · 421 阅读 · 0 评论 -
[Leetcode]Number of 1 Bits
Number of 1 BitsWrite a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).For example, the 32-bit integer ’11' has binary原创 2015-04-10 23:20:30 · 627 阅读 · 0 评论 -
[Leetcode]Excel Sheet Column Number
Related to question Excel Sheet Column TitleGiven a column title as appear in an Excel sheet, return its corresponding column number.For example: A -> 1 B -> 2 C -> 3 ..原创 2015-01-03 16:18:08 · 4618 阅读 · 0 评论 -
[Leetcode]Best Time to Buy and Sell Stock
Say you have an array for which the ith element is the price of a given stock on day i.If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock),原创 2014-12-13 11:03:52 · 698 阅读 · 0 评论 -
[Leetcode]Search in Rotated Sorted Array II
Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed?Would this affect the run-time complexity? How and why?Write a function to determine if a given target is in the原创 2014-12-13 10:23:37 · 539 阅读 · 0 评论 -
[Leetcode]Integer to Roman
Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.class Solution {public: string intToRoman(int num) { const int Integer[]原创 2014-12-10 23:20:56 · 643 阅读 · 0 评论 -
[Leetcode]Roman to Integer
Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.class Solution {public: inline int map(const char c) { switch(c)原创 2014-12-10 23:08:17 · 886 阅读 · 0 评论 -
面试常考察的排序(快速排序,归并排序,堆排序)
面试最经常考察的排序应该就是 快速排序,归并排序和堆排序了。例如题目:10万个数字中找最大的10个数。 1,因为10万个数可以放到内存中,首先可以考虑使用快排的 Partition 函数解决这个问题。 若Partition 函数得到 index 值为 99990,则从下标 99990 到下标 99999 的10个数字就是最大的 10 个数。 时间复杂度为 O(n原创 2014-12-03 17:20:33 · 1608 阅读 · 0 评论 -
[九度oj]题目1362:左旋转字符串(Move!Move!!Move!!!)
题目描述:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!输入:多组测试数据,每个测试数据包含一个字符序列S和非负整数K。其中S的长度不超过1000。原创 2014-12-01 11:58:50 · 640 阅读 · 0 评论 -
用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序(约瑟夫环问题)
用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序 [cpp] view plaincopy// 用户输入M,N值,从1至N开始顺序 // 循环数数,每数到M输出该数值, // 直至全部输出 #include // 节点 typedef struct node转载 2015-09-04 16:28:32 · 1138 阅读 · 1 评论 -
后缀数组求最长重复子串
问题描述给定一个字符串,求出其最长重复子串例如:abcdabcd最长重复子串是 abcd,最长重复子串可以重叠例如:abcdabcda,这时最长重复子串是 abcda,中间的 a 是被重叠的。直观的解法是,首先检测长度为 n - 1 的字符串情况,如果不存在重复则检测 n - 2, 一直递减下去,直到 1 。这种方法的时间复杂度是 O(N * N * N),其中包括三部转载 2015-09-04 15:00:48 · 680 阅读 · 0 评论 -
C/C++小程序学习:n*n魔方矩阵实现每行、每列、每一对角线上的元素之和相等
用一个程序实现n*n魔方矩阵中,每一行、每一列、每一对角线上的元素之和相等。矩阵规律:本程序只适合基数,解释如下: N 为奇数时,此题中N设为5(1) 将1放在第一行中间一列; (2) 从2开始直到n×n止各数依次按下列规则存放: 按 45°方向行走,如向右上 每一个数存放的行比前一个数的行数减1,列数加1 (3) 如果行列范围超出矩阵范围,转载 2015-09-15 15:50:42 · 12770 阅读 · 0 评论 -
检索之 乘积量化(Product Quantization)
本文转载自:https://www.cnblogs.com/mafuqiang/p/7161592.html乘积量化1。简介 乘积量化(PQ)算法是和VLAD算法是由法国INRIA实验室一同提出来的,为的是加快图像的检索速度,所以它是一种检索算法,在矢量量化(Vector Quantization,VQ)的基础上发展而来,虽然PQ不算是新算法,但是这种思想还是挺有用处的,本文没有添加公式。 它...转载 2018-03-16 17:52:49 · 2035 阅读 · 1 评论 -
基于DFA敏感词查询的算法简析
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/1.背景项目中需要对敏感词做一个过滤,首先有几个方案可以选择:a.直接将敏感词组织成String后,利用indexOf方法来查询。b.传统的敏感词入库后SQL查询。c.利用Lucene建立分词索引来查询。d.利用DFA算法来进行。首先,项目收集到的敏感词有几千条,使用a方案...转载 2018-03-08 22:02:30 · 605 阅读 · 0 评论 -
BM算法 Boyer-Moore高质量实现代码详解与算法详解
本文转载自:http://www.cnblogs.com/xubenben/p/3359364.html鉴于我见到对算法本身分析非常透彻的文章以及实现的非常精巧的文章,所以就转载了,本文的贡献在于将两者结合起来,方便大家了解代码实现! 算法详解转自:http://www.searchtb.com/2011/07/%E5%AD%97%E7%AC%A6%E4%B8%B2%E转载 2017-01-11 17:09:40 · 1207 阅读 · 0 评论 -
AC自动机的一种简单实现
本文转载自:http://blog.csdn.net/VevoLiang/article/details/51673456ProblemDescription(本题源自ACM题库HDU 2222)In the modern time, Search engine came intothe life of everybody like Google, Baidu, etc.转载 2017-01-11 17:06:21 · 553 阅读 · 0 评论 -
堆排序heapSort java实现
首先,堆分为两种:大根堆和小根堆。堆均可看成是一棵完全二叉树的顺序存储结构。 对于大根堆,树中任一节点的值均不小于其孩子节点的值;同样,对于小根堆,树中任一节点的值均不大于其孩子节点的值。 对于树中任一节点,若其下标为 i ,则该节点的左右孩子的下标为 2i+1 和 2i+2。则对于任一节点n,其父节点的下标为(n-1)/2 向下取整。 堆排序的步原创 2015-10-31 20:16:01 · 532 阅读 · 0 评论 -
给定一个随机数生成器(0,1),构造一个随机数生成器(0,4)
现给定一个随机数生成器range2(),可等概率的生成0和1,现如何构造一个随机数生成器range5(),可等概率的生成0,1,2,3,4。 目前有个有点low的想法: 因为现在已有可生成0,1的随机数生成器,任何数均可用二进制表示,用range2()等概率的生成000,001,010,011,100,101,110,111,然后将101,110,111抛弃即可,在生成5,原创 2015-09-22 23:53:29 · 4203 阅读 · 0 评论 -
ACM题目中输入数据的处理(C++版)
本文转载自:http://blog.csdn.net/sxhelijian/article/details/8978850ACM题目中输入数据的处理(C语言版)见:http://blog.csdn.net/sxhelijian/article/details/8978794 ACM竞赛题目的输入数据常要求有多组,并且格式多种多样,这是初次登OJ平台的同学的一个障碍转载 2015-10-11 10:23:16 · 2003 阅读 · 0 评论 -
2016小米校招笔试题
1 给定一些线段,线段有起点和终点,求这些线段的覆盖长度,重复的部分只计算一次。 方法一:首先说排序对于处理很多问题都是非常有效的,例如寻找兄弟单词等问题中,经过排序处理后,问题就明朗了很多;线段覆盖长度也是这样,将线段排序后,然后扫描一遍就可以得到覆盖的长度。具体做法:排序时,先按线段的起始端点排序,如果始点相同则按照末端点排,然后从头扫描,寻找连续段;所谓连续段即原创 2015-10-08 22:52:25 · 2828 阅读 · 3 评论 -
双向链表的选择排序算法
本文转载自http://blog.csdn.net/zhipi/article/details/4425533前日遇到一个问题:对双向链表按关键字域进行排序。 在网上找了一下,都只一种算法,而且是对无头结点的双向链表的排序,对于指针的交换,分了8种情况,我觉得很烦。于是自己想了一下,写了个带头结点的双向链表的选择排序算法,指针的交换浓缩到4种情况,而且自认为选择排序函数中的结转载 2014-12-16 18:27:31 · 7483 阅读 · 0 评论 -
程序员编程艺术:第十章、如何给10^7个数据量的磁盘文件排序
本文转载自http://blog.csdn.net/v_july_v/article/details/6451990 第十章、如何给10^7个数据量的磁盘文件排序作者:July,yansha,5,编程艺术室。出处:http://blog.csdn.net/v_JULY_v 。 前奏 经过几天的痛苦沉思,最终决定,把原程序员转载 2014-12-15 17:07:32 · 756 阅读 · 0 评论 -
[Leetcode] Pow(x, n)
class Solution {public: bool Invalid_input = false; bool equal(double x,double y) { if((x - y -0.0000001)) return true; else return false; } double computepow(double x,int y原创 2014-11-06 14:03:02 · 711 阅读 · 0 评论 -
[九度oj]题目1370:数组中出现次数超过一半的数字
题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。输入:每个测试案例包括2行:第一行输入一个整数n(1第二行输入n个整数,表示数组中的每个元素,这n个整数的范围是[1,1000000000]。输出:对应每个测试案例原创 2014-11-11 11:09:10 · 574 阅读 · 0 评论 -
面试题、算法题收藏
各种面试题、算法题啊。。。原创 2014-08-07 15:01:34 · 1018 阅读 · 0 评论 -
编码实现环状单向链表(尾指针直接指向头指针,中间没有空节点),去除连续的重复元素的操作
比如:1(头)->2->2->3->3->1->原创 2014-05-12 21:42:48 · 1509 阅读 · 0 评论 -
[LeetCode]Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [−2,1,−3,4,−1,2,1,−5,4],the contiguous subarray [4,−1,2,1] ha原创 2014-05-13 19:53:05 · 741 阅读 · 0 评论 -
0-1背包问题
总共有三件物品,原创 2014-05-11 21:26:56 · 884 阅读 · 0 评论 -
[LeetCode]Linked List Cycle
Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?原创 2014-05-11 09:50:01 · 805 阅读 · 0 评论 -
[LeetCode]Single Number
Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without using ext原创 2014-05-11 09:47:38 · 701 阅读 · 0 评论 -
最长公共子序列LCS
请编写一个函数,输入两个字符串,求它们的最长公共子序列,原创 2014-05-10 20:34:02 · 1103 阅读 · 0 评论 -
[Leetcode]Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null.Follow up:Can you solve it without using extra space?class Solution {public: ListNode *det原创 2014-11-11 18:40:56 · 473 阅读 · 0 评论 -
[Leetcode]Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.原创 2014-11-11 18:42:32 · 479 阅读 · 0 评论 -
[九度oj]题目1367:二叉搜索树的后序遍历序列
题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。输入:每个测试案例包括2行:第一行为1个整数n(1第二行包含n个整数,表示这个数组,数组中的数的范围是[0,100000000]。输出:对应每个测试案例,如果输入数组是某二叉搜索树的后序遍历的结果输出Yes,否则输出原创 2014-11-23 17:27:12 · 760 阅读 · 0 评论 -
[九度oj]题目1369:字符串的排列
题目描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入:每个测试案例包括1行。输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。输出:对应每组数据,按字典序输出所有排列。样例输入:abcBCA原创 2014-11-23 10:59:07 · 994 阅读 · 0 评论 -
海量数据处理之Tire树(字典树)
本文转载自http://blog.csdn.net/ts173383201/article/details/7858598参考博文:http://blog.csdn.net/v_july_v/article/details/6897097第一部分、Trie树1.1、什么是Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典转载 2014-11-25 20:05:00 · 3432 阅读 · 0 评论 -
[百度面试题]找出字符串中连续出现次数最多的子串
基本算法描述: 给出一个字符串abababa 1.穷举出所有的后缀子串 substrs[0] = abababa; substrs[1] = bababa; substrs[2] = ababa; substrs[3] = baba; substrs[4] = aba; substrs[5] = ba; substrs[6] = a; 2.然后进行比较转载 2014-11-25 19:30:20 · 1125 阅读 · 0 评论 -
[九度oj]题目1349:数字在排序数组中出现的次数
题目描述:统计一个数字在排序数组中出现的次数。输入:每个测试案例包括两行:第一行有1个整数n,表示数组的大小。1第二行有n个整数,表示数组元素,每个元素均为int。第三行有1个整数m,表示接下来有m次查询。1下面有m行,每行有一个整数k,表示要查询的数。输出:对应每个测试案例,有m行输出,每行1整数,表示数组中该数字出现的次数。样例输入:原创 2014-11-20 00:13:41 · 792 阅读 · 0 评论 -
[九度oj]题目1351:数组中只出现一次的数字
题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。输入:每个测试案例包括两行:第一行包含一个整数n,表示数组大小。2第二行包含n个整数,表示数组元素,元素均为int。输出:对应每个测试案例,输出数组中只出现一次的两个数。输出的数字从小到大的顺序。样例输入:82 4 3 6 3 2 5 5样原创 2014-11-17 22:48:01 · 758 阅读 · 0 评论