算法解析
小刀刀
while(1)
{
Thinking;
doing;
}
展开
-
第五题:Longest Palindromic Substring
擦!leetcode题目:Longest Palindromic Substring原创 2015-02-11 23:52:10 · 1818 阅读 · 0 评论 -
扑克牌顺子
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=28LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A原创 2013-03-19 08:39:15 · 1300 阅读 · 0 评论 -
算法导论:关于时间复杂T(n)的表达式处理
MIT算法导论提供了三种方法,不废话了,直接介绍:( 公式显示不了,所有就截图了,请包涵~ 呵呵)1. 代换法:猜测-> 验证 例如:T(n) = 4*T(n/2) + n ( 其中T(1) =O(1) ) 假设是时间复杂度是n^3 那么证明:那么设T(k) 那么带入有:原创 2013-03-20 16:20:42 · 7067 阅读 · 0 评论 -
Move!Move!!Move!!!
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=26汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的原创 2013-03-19 08:34:40 · 914 阅读 · 0 评论 -
孩子们的游戏(圆圈中最后剩下的数)
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=29每年六一儿童节,JOBDU都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为JOBDU的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为原创 2013-03-19 08:42:51 · 1519 阅读 · 0 评论 -
变态跳台阶 和 跳台阶 和 矩形覆盖
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目: http://ac.jobdu.com/problem.php?cid=1039&pid=4http://ac.jobdu.com/problem.php?cid=1039&pid=5http://ac.jobdu.com/problem.php?cid=1039&pid=6见:另一篇文章:htt原创 2013-03-18 08:49:30 · 877 阅读 · 0 评论 -
关于 斐波那契数列 的引申
最基本的函数模型是: / 0 n=0f(n)= 1 n=1 \ f(n-1)+(f-2) n>11.我们一般的解法是:int fun( int n ){原创 2013-03-12 14:35:55 · 1692 阅读 · 0 评论 -
桶排序之后 --- > 基数排序
和桶排序一样,也不是基于比较的。基数排序一般用于整数的处理,它的基本原理是:一直想把它说的更白话一点,可是,哎。。。我们可以想象一下,如果现在只有几个各位数 2 6 3 7 ,那么装入数组后是 :修改相应的位置后:那么再由后往前扫描,7 -> 3 -> 6 -> 2对应到位置后为:2 3 6 7 已经排好序了。。。那么原创 2013-03-16 16:48:59 · 807 阅读 · 0 评论 -
二叉树中和为某一值的路径
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=10输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。输入:每个测试案例包括n+1行:第一行为2个整数n,k(1原创 2013-03-18 09:08:51 · 1168 阅读 · 0 评论 -
翻转单词顺序
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=25JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识原创 2013-03-19 08:29:46 · 1819 阅读 · 0 评论 -
找到第一个只出现一次的字符
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=18在一个字符串(1输入:输入有多组数据每一组输入一个字符串。输出:输出第一个只出现一次的字符下标,没有只出现一次的字符则输出-1。样例输入:ABACCDEFF原创 2013-03-19 07:51:31 · 1857 阅读 · 0 评论 -
poj 1006 与 中国剩余定理
poj 1006 题的思路不是很难的,可以转化数学式:现设 num 是下一个相同日子距离开始的天数 p,e,i,d 如题中所设!那么就可以得到三个式子:( num + d ) % 23 == p; ( num + d ) % 28 == e; ( num + d ) % 33 == i;p,e,i,d 是我们输入的,那么我们需要求出num即可,为了方便,我们将num原创 2013-03-27 09:46:56 · 9972 阅读 · 3 评论 -
动态规划 ( DP ) 和 实例分析
一直都不知道怎么来写这篇博文,真的很难写,主要是怕自己写不好,会造成误解!因为之前自己看的网上的一些文章就是的,不过也有好的~感谢那些大牛!现在也尝试写吧,写的不好,大家请包涵见谅!我一般是比较讨厌在bolg上写概念的,因为那真的很无聊,但并不是概念不重要,很重要,但是写出来应该要用比较好理解的描述。一直尝试着怎么去很好的描述DP,也一直在纠结!很多时候是会这一个DP的题目,下一个原创 2013-04-03 12:43:56 · 1646 阅读 · 0 评论 -
第四题:Median of Two Sorted Arrays
擦!leetcode题目:Median of Two Sorted Arrays原创 2015-02-10 11:02:01 · 1390 阅读 · 0 评论 -
第一题: Two Sum
擦!,leecode: Two Sum原创 2015-02-09 12:14:35 · 1789 阅读 · 0 评论 -
第三题:Longest Substring Without Repeating Characters
擦!leetcode题目:Longest Substring Without Repeating Characters原创 2015-02-09 16:28:46 · 1258 阅读 · 0 评论 -
第二题:Add Two Numbers
擦!leetcode题目:Add Two Numbers原创 2015-02-09 12:57:56 · 2556 阅读 · 0 评论 -
判断链表是否有环 、 找到环的入口节点
昨天去完笔试的时候遇到以前见过的老题目,记录一下吧... 题目很简单,就是说:给你一个链表,判断是否存在环!同时求出环的入口节点! 我们先看这样一个题目:两个单链表(无环),判断是否有公共节点! 例图: * 1 ---> 2 ---> 3 ---> 4 ----> 5 *原创 2013-10-20 13:23:52 · 6201 阅读 · 2 评论 -
矩阵的求逆
最近做一个加密算法遇到需要计算矩阵的逆,闲着无聊,记录一下,以后免得再麻烦。#include #include #include #define MAX 20#define E 0.000000001/** * 计算矩阵src的模 */double calculate_A( double src[][MAX], int n ){ int i,j,k,x,y;原创 2013-11-19 11:08:22 · 2967 阅读 · 0 评论 -
BM 算法
看完上次的kmp后准备看BM算法, 但是一直都没有时间,感觉,看网上的一些原理解释并不能看的很懂,然后看了就迷迷糊糊的,现在总结一下,顺便是理清思路!不知道自己会不会讲的清楚一点!( 至于代码,自己写的还在测试,不知道有没有错,现在贴上来的是参照snort中的代码!虽然网上的很多代码都是这个!不过后来会写上自己的代码的 )BM 算法思路:1:BM算法是整体字串是从左往右移动原创 2013-05-28 14:49:00 · 2429 阅读 · 2 评论 -
丑数 问题
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=17把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。输入:输入包括一个整数N(1原创 2013-03-19 07:46:45 · 1937 阅读 · 1 评论 -
和为S的连续正数序列
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=24小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的原创 2013-03-19 08:24:49 · 2815 阅读 · 0 评论 -
和为S的两个数字
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=23输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输入:每个测试案例包括两行:第一行包含一个整数n和k,n表示数组中的元素个数,k表原创 2013-03-19 08:18:55 · 1506 阅读 · 0 评论 -
又见 “KMP”
同 http://blog.csdn.net/shanshanpt/article/details/8679459 ,都是回忆版>: KMP的一些概念介绍就不用了,网上到处都是,此处只是为了整理,仅此而已>: 网上看到的文章都是从 “ next ”数组和i,j指针的移动来讲的,这里也一样,不过不同的是,想说的更清晰一点! >: 传统的BF算法与KMP有什么区别呢原创 2013-03-16 09:38:54 · 1104 阅读 · 0 评论 -
栈的压入压出
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=8输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5原创 2013-03-18 08:58:19 · 1459 阅读 · 0 评论 -
顺时针打印矩阵
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.输入:输入可能包含多个测试样例,对于每原创 2013-03-18 08:53:28 · 1259 阅读 · 0 评论 -
重建二叉树
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=1输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二原创 2013-03-18 08:44:49 · 4066 阅读 · 0 评论 -
又见 “归并” 算法
归并算法: 同样,也是回忆篇:http://blog.csdn.net/shanshanpt/article/details/8680224也不想多解释什么,主要是自己做到九度OJ的题目时候想到又要整理一下了,开始看到题目还真没思路,哎,笨啊~ 不过此题使用归并确实是好办法( 我的代码在九度Oj已经通过 )题目:http://ac.jobdu.com/problem.php原创 2013-03-16 10:45:53 · 1436 阅读 · 0 评论 -
字符串的排序
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=11输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入:每个测试案例包括1行。原创 2013-03-18 09:14:29 · 915 阅读 · 0 评论 -
二叉搜索树的后序遍历序列
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=9输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。输入:每个测试案例包括2行:第一行为1个整数n(1第二行包含n原创 2013-03-18 09:05:36 · 4094 阅读 · 0 评论 -
二维数组中的查找
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述: http://ac.jobdu.com/problem.php?cid=1039&pid=0在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入:输入可能包含多个测试样例,对于每个测试原创 2013-03-18 08:40:59 · 3365 阅读 · 0 评论 -
关于 约瑟夫环 问题
/* 此处借助九度oj上的题目!题目描述:每年六一儿童节,JOBDU都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为JOBDU的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为1的小朋友开始报数。每次喊到m的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的原创 2013-03-12 16:10:11 · 871 阅读 · 0 评论 -
又见 “快速排序”
同上文一样:http://blog.csdn.net/shanshanpt/article/details/8680498快速排序在一般的排序中被认为是平均效率最好的,主要适用于比较乱序的情况,对于基本有序的来说,效率不好~快排的思想很简单,看下图:原序列:4 3 5 2 1 |一般以第一个数位基准点,但是很多其他的方法也行,例如随机一个数( 保证是数组内部的原创 2013-03-16 12:22:30 · 809 阅读 · 0 评论 -
又见 “堆排序”
以前每次遇到排序的时候,要使用高效的算法,总会想到堆,每次都没有总结,都要自己慢慢写,无语,现在总结一下,哎。。。。。方便以后,呵呵!~基本概念: 大根堆:parent的权值大于lchild和rchild 小根堆:parent的权值小于lchild和rchild其基本思想为(以小根堆为例):原创 2013-03-15 20:35:54 · 1124 阅读 · 0 评论 -
又来一题咯:求两个整数的之和,要求在函数体内不得使用+、-、×、÷、++、- -
呵呵!此题看到后开始感觉很无语,其实大家看到后我感觉都是会有一个想法:那就是,此题不要用四则运算,那么就是位运算,对!这是大家的思维不错,但是具体怎么做呢?呵呵~~~O(∩_∩)O~ 首先,我们必须要转化为二进制分析是吧,这个是必须的哦!例如:(5 + 17)D == ( 101 +10001)B结果应该是10110吧!那么我们分析:对于二进制的加法而言,1 + 1 = 0, 1原创 2012-03-21 06:54:31 · 1183 阅读 · 2 评论 -
数组中的逆序对
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=19在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。输入:每个测试案例包括两行:第一行包含一个整数n,表示数组中的元素个数。其中1 第原创 2013-03-19 07:53:31 · 942 阅读 · 0 评论 -
所有员工年龄排序
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=16公司现在要对所有员工的年龄进行排序,因为公司员工的人数非常多,所以要求排序算法的效率要非常高,你能写出这样的程序吗?输入:输入可能包含多个测试样例,对于每个测试案例,输入的第一行为一个整数n(1输入的第二行原创 2013-03-19 07:39:27 · 3880 阅读 · 0 评论 -
最小的K个数
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。输入:每个测试案例包括2行:第一行为2个整数n,k(1第二行包含n个整数,表示这n个数,数组中的数的范围是[0,1000 000 000]。输出:对应每个测试案例原创 2013-03-19 07:12:56 · 1074 阅读 · 0 评论 -
二叉树的深度
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=21输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。输入:第一行输入有n,n表示结点数,结点号从1到n。根结点为1。 n 接下来有n行,每原创 2013-03-19 08:02:12 · 1737 阅读 · 0 评论 -
数字在排序数组中出现的次数
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=20统计一个数字在排序数组中出现的次数。输入:每个测试案例包括两行:第一行有1个整数n,表示数组的大小。1第二行有n个整数,表示数组元素,每个元素均为int。第三行有1个整数m,表示接下来有m次查询。1原创 2013-03-19 07:57:26 · 1813 阅读 · 0 评论