随笔分类 -  Data Structure & Algorithm

求第N个排列数
摘要:设序列为N个M位数的基本数字组成的排列数(N<=M)假设序列是有序的,求第n个排列数(以0开始索引,0<=n<N!)GetNofPvoid GetNofP(char const * const in,char* out,int const size,unsigned long long N)//in必须为递增的序列,size为in的大小//out为结果序列,out的大小必须大于size//0<=N<size!{ strcpy(out,in); vector<unsigned long long > info(size); int pos = size 阅读全文

posted @ 2011-10-13 17:24 SammyLan 阅读(375) 评论(0) 推荐(0)

二分查找变体之二维数组二分查找
摘要:一个二维数组,每一行和每一列都是递增的,给出一个数,返回该数字的位置,如果找不到,则返回(-1,-1) 阅读全文

posted @ 2011-10-12 18:36 SammyLan 阅读(1432) 评论(0) 推荐(0)

二分查找变体
摘要:从一个循环有序的数组中查找一个元素,如果存在则返回相应位置,否则返回-1.所谓的循环有序是指类似于如下的数组 10 11 12 1 2 3 4 5 6 阅读全文

posted @ 2011-10-10 18:25 SammyLan 阅读(365) 评论(0) 推荐(0)

求和为M且所有元素不大于N的自然数的组合
摘要:给定 M 和N 都是自然数, M>N 请给出所有满足以下两个条件的组合个数::1,其中所有的数都是不大于N的自然数,2,它们的和为M 比如:M=10, N=3 ,则 {3,3,3,1} 为满足要求的一个组合。 阅读全文

posted @ 2011-01-24 17:03 SammyLan 阅读(671) 评论(0) 推荐(0)

去除多余括号
摘要:struct OP { int pos; char op; }; char * Remove(char * str) { char * p = str; int i = 0; stack ops; vector rems; while(*p!='\0') { OP op; if(*p=='+'||*p=='-'||*p=='*'||*p=='/'||*p=='(') ... 阅读全文

posted @ 2010-12-02 15:46 SammyLan 阅读(527) 评论(0) 推荐(0)

甲流患者问题
摘要:第一天只有一个甲流患者,前五天为潜伏期,不发作也不会传染人 第六天开始发作,从发作到治愈需要5天时间,期间每天传染3个人 编程求求第N天共有多少患者 阅读全文

posted @ 2010-12-01 15:23 SammyLan 阅读(169) 评论(0) 推荐(0)

导航