算法
文章平均质量分 76
娃哈哈纯净李
这个作者很懒,什么都没留下…
展开
-
如何选择到最好女孩
求一个数列的逆序数逆序对:数列a[1],a[2],a[3]…中的任意两个数a[i],a[j] (i,如果a[i]>a[j],那么我们就说这两个数构成了一个逆序对逆序数:一个数列中逆序对的总数如数列 3 5 4 8 2 6 9(5,4)是一个逆序对,同样还有(3,2),(5,2),(4,2)等等那么如何求得一个数列的逆序数呢?方法1:一个一个的数转载 2014-11-20 16:30:35 · 894 阅读 · 0 评论 -
Edit Distance (leetcode)
题目:Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.)You have the following 3 operations permitted o原创 2014-12-01 17:09:29 · 553 阅读 · 0 评论 -
求二进制数中1的个数
《编程之美》第2.1节:求二进制数中1的个数转自:http://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html问题描述任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4这也是一道比较经典的题目了,相信不少人面试的时候可能遇到转载 2014-12-03 17:53:57 · 486 阅读 · 0 评论 -
1的数目
《编程之美》第2.4节:1的数目题目:给定一个十进制整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有"1"的个数。方法一:暴力枚举,肯定能够算出来,但是这样的复杂度为O(NlgN)。方法二:寻找规律,用公式计算,复杂度为O(lgN)。当某一位的数为0时,这个位上出现1的总次数就等于其高位数字乘以其所在位的权重,加入21023,百位为0,则其出现1的个数为21*100,原创 2014-12-06 16:37:11 · 495 阅读 · 0 评论 -
二叉搜索树(插入、删除、迭代遍历)
《算法导论》里面的代码真实简洁,看的很舒服,实现也很简单!!!头文件:bst.h#ifndef _BST_#define _BST_struct Node{ int data; Node *parent; Node *lChild; Node *rChild; Node(int d=0,Node* p=nullptr,Node *l=nullptr,Node *r=nul原创 2014-12-09 21:36:45 · 833 阅读 · 0 评论 -
最大公约数问题
《编程之美》第2.7节:最大公约数问题方法一:辗转相除法。方法二:不断相减法:为了避免进行求余运算。方法三:不断提出公约数2,如果没有公约数2,则两个数中偶数/2变成奇数,如果二者都为奇数,则进行方法2的运算。#includeusing namespace std;int gcd1(int x,int y){ if(x<y) return gcd1(y,x); wh原创 2014-12-09 18:52:25 · 500 阅读 · 0 评论 -
寻找最大的K个数
《编程之美》2.5:寻找最大的K个数下面的程序写的是寻找的最小的K个数,最大的K个数类似:#include#include#includeusing namespace std;int quickSelect(int A[],int N){ swap(A[0],A[rand()%N]); int k=1; for(int i=1;i<N;i++) { if(A[i]原创 2014-12-09 16:36:28 · 503 阅读 · 0 评论 -
10个经典的字符串hash函数的C代码实现
以下转自:http://blog.csdn.net/jcwkyl/article/details/4088436以下总共给出了10种字符串hash函数,在上面的链接中可以找到各个Hash函数的描述,以及一些其它的关于hash函数的资料下载。这些hash函数各自的优缺点不详。其中,ELFHash函数是在unix系统中被广泛使用的,也是《算法艺术与信息学竞赛》中作者推荐的一个字符串hash转载 2014-12-12 16:28:19 · 541 阅读 · 0 评论 -
寻找平面中距离最远的点
转自:http://blog.csdn.net/hackbuteer1/article/details/7484746问题给定平面上N个点的坐标,找出距离最远的两个点。分析类似于“最近点对问题”,这个问题也可以用枚举的方法求解,时间复杂度O(n^2)。“寻找最近点对”是用到分治策略降低复杂度,而“寻找最远点对”可利用几何性质。注意到:对于平面上有n个点,这一对最远点必然存在于这转载 2014-12-12 19:26:40 · 5842 阅读 · 0 评论 -
高效的安排见面会
《编程之美》第1.9节原创 2014-11-24 21:48:59 · 478 阅读 · 0 评论 -
24点游戏
《编程之美》1.16 24点游戏输入:n1,n2,n3,n4。输出:若能得到运算结果为24,则输出一个对应的运算表达式,否则输出0。例如:输入11,8,3,5,则输出为:(11-8)*(3+5)=24。思想:四个数总共有五种结合方式,即A(B(CD))、A((BC)D)、(AB)(CD)、(A(BC))D、((AB)C)D,而我把这五种次序存入保存计算顺序的二维数组sequence中,每次原创 2014-11-29 11:05:35 · 724 阅读 · 0 评论 -
NIM(1)一排石头的游戏
《》原创 2014-11-25 11:30:11 · 859 阅读 · 0 评论 -
Find Minimum in Rotated Sorted Array(leetcode)
题目:原创 2014-11-22 11:06:59 · 430 阅读 · 0 评论 -
构造数独
《编程之美》1.15节:构造数独构造一个9*9的矩阵,其中每一行都是1-9,每一列也是1-9,9个3*3的子方格中也是1-9。解:用回溯法,往当前格中填数字,如果满足就进行下一个格子,如果不满足就尝试下一个数,如果9个数都不满足,就回溯到前一个方格中,用下一个数继续尝试。#include#includeusing namespace std;//判断行、列和3*3的格中是否有重原创 2014-11-26 22:28:59 · 686 阅读 · 0 评论 -
小飞的电梯调度算法
《编程之美》原创 2014-11-21 22:06:37 · 542 阅读 · 0 评论 -
Evaluate Reverse Polish Notation (leetcode)
题目:原创 2014-11-21 17:31:31 · 397 阅读 · 0 评论 -
Valid Number(leetcode)
题目:Validate if a given string is numeric.Some examples:"0" => true" 0.1 " => true"abc" => false"1 a" => false"2e10" => trueNote: It is intended for the problem statement to b原创 2014-11-29 11:45:09 · 560 阅读 · 0 评论 -
Regular Expression Matching(leetcode)
题目:原创 2014-11-24 19:09:54 · 452 阅读 · 0 评论 -
Max Points on a Line(leetcode)
题目:原创 2014-11-24 14:44:25 · 436 阅读 · 0 评论 -
矩阵连乘时最少乘法次数
可以用递归,就是速度慢些,也可以直接把递归改成自顶向下的动归,或者直接用自底向上的动归,都可以,不过这里只是为了计算14年阿里笔试的一道题,所以就直接写了个递归版本的。代码:#includeusing namespace std;int fun(int *A,int lo,int hi){ if(lo==hi) return 0; int q=INT_MAX; for(i原创 2015-03-26 20:53:24 · 3129 阅读 · 0 评论