algorithm
VintNee
老夫聊发少年狂
十年生死两茫茫
一树梨花压海棠
展开
-
算法升级线路
前言无终南捷径,修炼之路,脚踏实地,步步为营.基础扎实,理解深入后,所谓难题,不过是基础的叠加而已.而最好的方法就是像学生时代刷题那般,见识多了,视野也就广了,思维也就宽了,能力也就强了. 所谓内功,技术,包括新编程语言,新环境,调试技能,原理,技术;悟性,包括算法,理解能力,建模,转化目录数论字符串字符串相关 hash KMP 扩展KMP图论最短路 差分约束 floyd 倍增floy原创 2015-04-26 10:58:31 · 1382 阅读 · 0 评论 -
KMP模板
模板就是你的武器, 而真正的高手, 是不需要用任何武器的a b a a b c a c-1 0 0 1 1 2 0 1void getNext(const char* str,int next[]){ int i=0,j=-1; next[i]=j; assert(str); while(i<(int)strlen(str)){原创 2014-03-24 22:19:54 · 737 阅读 · 0 评论 -
hdu1251 字典树
算作字典树的入门吧, 挺实用的一个模板, 些许细节需要注意统计难题Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submission(s): 15842 Accepted Submission(s): 6775Problem D原创 2014-03-24 14:31:46 · 819 阅读 · 0 评论 -
九度题目1201:二叉排序树
题目描述: 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。输入: 输入第一行包括一个整数n(1 接下来的一行包括n个整数。输出: 可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。 每种遍历结果输出一行。每行最后一个数据之后有一个空格。原创 2014-03-19 21:13:37 · 1164 阅读 · 0 评论 -
九度题目1384:二维数组中的查找
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入:输入可能包含多个测试样例,对于每个测试案例,输入的第一行为两个整数m和n(1输入的第二行包括一个整数t(1接下来的m行,每行有n个数,代表题目所给出的m行n列的矩阵(矩阵如题目描述所示,每一原创 2014-03-19 14:22:24 · 1071 阅读 · 0 评论 -
正整数开方,不用sqrt
实现两位数精度#includedouble sqrts(int src){ int i,j; for(i=0;;i++) { if(i*isrc) break; } if(i*i==src)return i*1.0; for(j=0;j<1000;j++) { if((i+j/100原创 2014-03-18 17:38:23 · 1629 阅读 · 0 评论 -
堆排序实现
1. 对于堆, 结点I的左子2*i +1 右子2*i + 22. 对于n的堆, 第一个非叶子结点是n/2 - 1, 考虑到数组是从0开始的, 最后一个结点是n-1, 第一个是03. 删除和添加是在AdjustHeap()的基础上实现的#includevoid swap(int *a, int *b){ int tem = *a; *a = *b; *b =原创 2014-03-18 22:28:30 · 766 阅读 · 0 评论 -
Median of Two Sorted Arrays(OO)
There are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).这题有点麻烦,考虑情况较多1. median为中位数,如果为偶原创 2014-03-18 10:46:14 · 958 阅读 · 0 评论 -
九度:题目1553:时钟
题目描述:如图,给定任意时刻,求时针和分针的夹角(劣弧所对应的角)。输入:输入包含多组测试数据,每组测试数据由一个按hh:mm表示的时刻组成。输出:对于每组测试数据,输出一个浮点数,代表时针和分针的夹角(劣弧对应的角),用角度表示,结果保留两位小数。样例输入:03:0014:45样例输出:原创 2014-03-17 17:31:27 · 1124 阅读 · 0 评论 -
九度:题目1554:区间问题
题目1554:区间问题时间限制:1 秒内存限制:128 兆特殊判题:否提交:996解决:81题目描述:给定一个数组,判断数组内是否存在一个连续区间,使其和恰好等于给定整数k。输入:输入包含多组测试用例,每组测试用例由一个整数n(1接下去一行为n个整数,描述这个数组,整数绝对值不大于100。最原创 2014-03-17 21:28:53 · 1573 阅读 · 1 评论 -
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-03-15 20:20:06 · 825 阅读 · 0 评论 -
poj2524 Ubiquitous Religions
Ubiquitous ReligionsTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 21984 Accepted: 10785DescriptionThere are so many different religions in the world t原创 2014-03-12 11:39:13 · 695 阅读 · 0 评论 -
九度 1526:朋友圈
刚学的并查集, 真是好用时间限制:1 秒内存限制:128 兆特殊判题:否提交:810解决:239题目描述:假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。假如:n = 5 , m = 3 ,原创 2014-03-11 23:47:40 · 1096 阅读 · 0 评论 -
数组中移动0至后面
int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)#includeusing namespace std;int fn(int *a, int si原创 2014-03-05 11:59:02 · 1413 阅读 · 0 评论 -
memcpy实现
memcpy/* * ===================================================================================== * * Filename: memcp.c * * Description: * * Version: 1.0 * Created:原创 2014-02-19 14:49:01 · 859 阅读 · 0 评论 -
最长连续和与最大子矩阵
1. 最长连续和求一个串里面最长连续的子串如:1 2 3 -4 5 -10最长是 1 2 3 -4 5 和7 长度5 起始1~5算法:这应该是一个很简单的问题, 倒是本人想复杂了, 耗时不少呀~不说, 贴代码, 主要是sum的作用, 细细体会:for(i=0;i<N;i++) scanf("%d",&a[i]);int x = 1,y = 1;int原创 2013-12-24 01:51:34 · 1029 阅读 · 0 评论 -
Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.先贴一个我超时的代码:/** * Definition for原创 2013-12-14 04:17:56 · 717 阅读 · 0 评论 -
Same Tree
Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes have the same value/**原创 2013-12-14 04:23:03 · 688 阅读 · 0 评论 -
求两个链表结点组成的数之和
#include using namespace std;typedef struct node{ int data; node *next;}node;node* init(int a[], int n){ node *head=NULL, *p; for(int i=0; i<n; ++i){ node *nd = new node(原创 2014-06-09 20:32:15 · 1073 阅读 · 0 评论 -
查找二叉查找树的任意给定结点的“下一个”结点
#include #include using namespace std;const int maxn = 100;struct Node{ int key; Node *lchild, *rchild, *parent;};Node *p, node[maxn];int cnt;void init(){ p = NULL; memset(no原创 2014-06-10 08:56:19 · 999 阅读 · 0 评论 -
图的深度搜索和广度搜索
#include #include #include #include using namespace std;const int maxn = 100;bool g[maxn][maxn], visited[maxn];int n;queue q;void init(){ memset(g, false, sizeof(g)); memset(visited原创 2014-06-09 23:57:21 · 910 阅读 · 0 评论 -
Excel Sheet Column Title
Given a positive integer, return its corresponding column title as appear in an Excel sheet.For example: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB Credits原创 2015-01-03 21:16:21 · 1430 阅读 · 0 评论 -
Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!.Note: Your solution should be in logarithmic time complexity.题意: 求n!后面有多少个0, 尾部这里就不考虑负数和0了, 这种情况直接认为0方法1:0只可能是10, 4x5原创 2015-01-03 17:57:42 · 1149 阅读 · 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-01-03 21:38:20 · 844 阅读 · 0 评论 -
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 21:22:58 · 993 阅读 · 0 评论 -
最长递增子序列
一个是O(n^2)一个是O(logn*n)两者都需要临时空间原创 2014-09-28 12:11:54 · 729 阅读 · 0 评论 -
包含集合的最短子串
#include#include#include#include#include#include using namespace std;int hashs[256];int getMin(char str[],int n, char *src){ int i; int num=0; int len = INT_MAX; for(i=0;i<25原创 2014-09-21 17:53:41 · 1263 阅读 · 0 评论 -
leetcode-Remove Duplicates from Sorted Array
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this in place with原创 2014-06-22 16:59:34 · 939 阅读 · 0 评论 -
leetcode-Construct Binary Tree from Preorder and Inorder Traversal
Given preorder and inorder traversal of a tree, construct the binary tree.原创 2014-06-21 23:29:49 · 1131 阅读 · 0 评论 -
leetcode-Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:"((()))", "(()())", "(())()", "()(())", "()()原创 2014-06-22 02:48:53 · 867 阅读 · 0 评论 -
Leetcode-Convert Sorted List to Binary Search Tree
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.原创 2014-06-22 02:28:33 · 914 阅读 · 0 评论 -
leetcode-Construct Binary Tree from Inorder and Postorder Traversal
Given inorder and postorder traversal of a tree, construct the binary tree.Note:You may assume that duplicates do not exist in the tree.原创 2014-06-21 23:43:07 · 1007 阅读 · 0 评论 -
leetcode-Validate Binary Search Tree
Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes with keys less than the node's key.Th原创 2014-06-21 21:32:34 · 827 阅读 · 0 评论 -
求1+2+...+n
不用if.else.while等一切的条件判断这题真是转载 2014-06-18 17:02:45 · 835 阅读 · 0 评论 -
个人blog转阵地了
http://mkdir1.github.io/最近在github上建立了一个原创 2014-07-09 21:34:59 · 1092 阅读 · 0 评论 -
leetcode-Container With Most Water
Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Fin原创 2014-07-05 20:57:40 · 887 阅读 · 0 评论 -
QuickSort快速排序
/* * ===================================================================================== * * Filename: QuickSort.c * * Description: * * Version: 1.0 * Created: 20原创 2014-06-11 22:19:53 · 728 阅读 · 0 评论 -
单链表的环节点
1.判断单链表是否存在环2. 的原创 2014-06-09 21:31:24 · 1448 阅读 · 0 评论 -
hdu 1848 博弈 难题 取石子 三堆
Fibonacci again and againTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3729 Accepted Submission(s): 1558Problem Description任何一个大学生对菲转载 2013-12-06 06:33:29 · 1491 阅读 · 0 评论 -
jd1338.c
说明:1. unsigned long long 可表示2^632. 输出printf不好表示就用cout3. pow(x,y)可以是浮点数, 所以要类型转化/* * ===================================================================================== * * Filen原创 2013-11-29 15:33:54 · 1012 阅读 · 0 评论