自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 装B失败小记一则

abstract:这是一只码狗企图用代码在朋友圈掀起一场腥风血雨的惨痛失败的小记。。。。。。。。。这是一个阳光明媚的下午,我吃着火锅唱着歌,徜徉在我平静的朋友圈,突然,几行小字闪电般刺痛了我的狗眼,大概是这样式的:作为这种无脑游戏的狂热爱好者,我怎!么!能!忍!装B也要按照基本法啊!于是我:①截图②python脚本获取元素RGB③

2016-03-07 15:22:12 667 1

原创 分支限界法求解旅行商问题

问题来来自2016华为软件精英挑战赛。 问题定义给定一个带权重的有向图G=(V,E),V为顶点集,E为有向边集,每一条有向边均有一个权重。对于给定的顶点s、t,以及V的子集V',寻找从s到t的不成环有向路径P,使得P经过V'中所有的顶点(对经过V'中节点的顺序不做要求)。若不存在这样的有向路径P,则输出无解,程序运行时间越短,则视为结果越优;若存在这样的有向路径P,则输出所得到的路径,

2016-03-06 04:00:10 10951

原创 基于引用计数的智能指针

#pragma once#include#includeusing namespace std;templateclass SmartPointer{ //不允许有SmartPointer sp=new T()这样的使用方式能给sp赋值的只有另一个sp对象和构造方法public: SmartPointer(T* p = 0) :ptr(p), ref_count(new siz

2015-04-24 12:59:53 776

原创 频繁项集算法:Apriori算法的C++实现

Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。算法原理我一定不如 点击打开链接 说的明白,就只贴代码好了。购物篮应该是放在数据库中,我把它写在文件D:/item.txt中。有一点不同:①代码中用了以下映射:totalID(项名-->整体编码的映射)freID(整体编码-->频繁项编码的映射)

2015-03-20 15:30:47 2580

原创 多模式匹配算法:AC自动机的C++实现

AC自动机(Aho-Corasick automaton)是用来处理多模式匹配问题的。基本可认为是TrieTree+KMP。其中KMP是一种单模式匹配算法。AC自动机的构造要点是失败指针的设置,用于匹配失败时跳转到另一节点继续匹配。同时在匹配的过程中也用来检索其他“同尾”的模式。失败指针的设置:用BFS。对于每个节点,我们可以这样处理:设这个节点上的字母为C,沿着他

2015-03-16 21:00:01 4486

原创 不重复随机数列生成

问题描述:随机生成k个不重复的随机数(或生成0至k-1以随机顺序构成的数列)算法:rand不直接产生值,而是产生下标,下标可以重复,但要保证数组中都是不重复且没有输出过的数字①一个大小为k的数组temp,temp[i]=i;一个随机下标的范围range,range初始为k;一个随机数组result②随机生成0至range-1的一个下标index,将temp[index]

2015-03-14 18:18:07 735

原创 Leetcode139题Word Break的两种动态规划解法

由leetcode139题Word Break产生的对动态规划的一点思考。题目要求是这样的:Given a string s and a dictionary of words dict,determine if s can be segmented into a space-separatedsequence of one or more dictionary words.For e

2015-02-16 15:56:49 1819

原创 Trie树(字典树)的C++实现

问题描述:Trie树又称单词查找树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。举个例子:os,oh,old,char,chat这些关键词构成的trie树:                               root

2015-01-01 01:10:28 1593

原创 快速选择select算法

问题描述:在一个数组中找出第k小的数。算法:快速选择select算法。策略:五分化中项的中项做pivot复杂度:最坏情况下O(n)对比:1、RANDOMIZED-SELECT,以序列中随机选取一个元素作为主元,可达到线性期望时间O(N)的复杂度。2、SELECT,快速选择算法,以序列中“五分化中项的中项”,或“中位数的中位数”作为主元(枢纽元),在最

2014-12-26 00:20:55 4848 1

原创 atoi的实现

处理策略完全模仿c语言的库函数溢出处理策略:输出上界或下界(2147483647和-2147483648)测试数据:char* s1 = " \t\f\v\n\r-00100\n\t\f\v\n\r1234"; char* s2 = "--099"; char* s3 = "s100"; char* s4 = "+2147483647sc"; char* s5 = "2

2014-12-14 02:09:08 1117

原创 2048游戏的Java实现

写的比较匆忙,功能较为单一,界面丑,操作步数应该还能优化。最终还是要写AI,但好像没那么简单,写了几个关于格局评价的函数,还得继续学习。。。上下左右方向键操作。源代码:import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridLayou

2014-12-13 03:14:06 1983

原创 一种将无限循环小数快速转换为分数的方法

问题描述:将任意无限循环小数转换为分数。例如0.121121121........=121/999算法综述:前面有一篇博文抱着娱乐态度证明了0.9999...=1 ,证明过程既不严谨。但由此可想到一种将任意无限循环小数快速转为分数的方法。首先回顾下0.9999...=1 的证明过程:证明:令a=0.99999...(无限循环)则10a=9.99999...(无限循环

2014-12-11 13:34:57 2073

原创 一种基于Sunday算法的单模式字符串匹配算法

最近看了几个字符串匹配算法,偶然想到对Sunday算法的一种可能的改进(改变)问题描述:单模式字符串匹配算法综述:Sundy算法四目前最快的字符串匹配算法,本文在sunday基础上做了一些改进(或者改变),能在一定程度上提高sunday算法的运行效率,较有限,但也算是一种思路。Sunday算法:从前往后匹配,每次匹配不成功,关注的是尾部的后一字符(设该字符为x)是否在模式串

2014-12-11 12:35:00 861

原创 【百度面试题】求包含固定字符集的最短子串

问题描述:一串首尾相连的珠子(m个),有N种颜色(N设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。并分析时间复杂度与空间复杂度。问题可等同于求一个长字符串c中包含固定字符集target的最短子串如"abddcbda"中包含"abc"的最短子串是"cbda"算法:指针head,rear分别指向目前已知的最短子串,初始值为c的头和尾指针begain,end是当

2014-10-09 11:01:34 1026

原创 【google面试题】求1到n的正数中1出现的次数的两种思路及其复杂度分析

问题描述:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。这是一道广为流传的google面试题。算法:第一种思路:对从1到n的每个数进行统计,统计的结果相加。算法复杂度为O(n)第二种思路:举例说明。令n=321,则:它的个位上出现1的形式为XY1,次数和为33(因为十

2014-10-07 15:23:29 1070 1

原创 中兴面试题:简单的背包问题的两种思路

问题描述:输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来。这是一个简单的背包问题算法:有一些分析认为此题有两种思路:递归和非递归。但是我觉得“是否递归”只是形式上的区别,用来代表两种思路有点牵强。我认为应该从算法的处理过程来区分:第一种:检查所有的组合,去掉和不为m的组合。直观地可将算法分成两步①

2014-10-05 18:27:32 1287

原创 二元查找树的翻转(镜像)的两种思路

问题描述:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。算法:测试用例:                                  10                             /             \                           5

2014-10-05 16:01:41 1031

原创 二叉树中节点的最大距离(树的最长路径)——递归解法

问题描述:如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。

2014-10-05 03:33:06 13982

原创 变形二叉树中节点的最大距离(树的最长路径)——非递归解法

问题描述:如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。 写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。测试用的树:                                  n1                             /             \                   

2014-10-04 01:16:26 2243

原创 二元查找树转化成排序的双向链表——要求不创建新的节点

码完第一次编译运行居然就成功了。。。高兴~问题描述:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。例如:       10       /    \     6     14    / \      /  \  4   8  12  16 转换成双向链表4=6=8=10=12=14=16算法:

2014-10-03 20:23:41 778

原创 证明0.999999...(无限循环)=1 的一种搞siao非主流方法。。。

我记得知道这个逗比方法是好像是在初一,但是怎么知道的已经忘了。。。。。。o(╯□╰)o那就开始了问题描述:请本着娱乐大众的心态,怀着哈哈哈哈的心情 试证明   0.999999...(无限循环)=1 证明:令a=0.99999...(无限循环)则10a=9.99999...(无限循环)10a-a=9.99999...(无限循环)-0.99999...(无限循环)=9

2014-10-03 14:15:31 3236 2

原创 在二元树中找出和为某一值的所有路径

问题描述:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树  10    / /    5  12    /   /   4     7则打印出两条路径:10,12和10, 5,7。

2014-10-03 02:41:54 543

原创 腾讯面试题:上排下排次数的两种思路

这是一道腾讯面试题问题描述:给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数  要求下排每个数都是先前上排那十个数在下排出现的次数。  上排的十个数如下:  【0,1,2,3,4,5,6,7,8,9】初看此题,貌似很难,10分钟过去了,可能有的人,题目都还没看懂。 举一个例子,  数值:0,1,2,3,4,5,6,7,8,9  分配: 6,2,

2014-10-03 02:26:24 724

原创 查找字符串中只出现一次的字符——哈希表

问题描述:在一个字符串中找到所有的只出现一次的字符。如输入abaccdeff,则输出b d

2014-10-03 01:45:22 671

原创 翻转句子中单词的顺序

问题描述:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。算法:设置一个栈stack,从句子

2014-10-03 01:26:44 437

原创 约瑟夫循环问题的两种思路

问题描述:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。(简单的约瑟夫循环问题

2014-10-03 01:16:58 836 1

原创 有序数列中查找和为某定值的两个数

问题描述:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。算法:

2014-10-03 01:04:48 1469

原创 求n个数的子集的三种思路

问题描述:求0-n这n个数的子集算法:

2014-10-03 00:18:07 2229

原创 连续子数组的最大和:线性扫描和分治法

问题描述:

2014-10-02 22:47:30 776

原创 车厢调度问题-非_递归算法

问题描述:假设停在铁路调度站入口处的车厢序列的编号依次为1,2,3……N。设计一个程序,求出所有由此输出的长度为N的车厢序列。算法综述:上一篇博文实现了解决车厢问题的递归算法。本文试图对N个车厢的全排列进行筛选,选出可能的序列。必须声明,产生全排列的算法也有两种:递归和非递归,本文使用的是递归产生全排列。全排列的非递归算法后面再说。。。调度站的本质是一个栈,LIFO决定了输出序

2014-10-02 17:19:11 2536

原创 车厢调度问题-递归算法

第一篇博文,小激动。问题描述:

2014-10-02 16:53:19 6156

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除