2011年10月21日

1的数目-编程之美132

摘要: 给定一个十进制数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有'1'的个数 比如: N=2,写下1,2,这样只出现了1个'1' N=12,我们写下1,2,3,4,5,6,7,8,9,10,11,12,这样1的个数5 写一个函数f(N),返回1到N之间'1'出现的个数,比如f(12)=5; 阅读全文

posted @ 2011-10-21 21:31 SammyLan 阅读(185) 评论(0) 推荐(0) 编辑

2011年10月13日

求第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 阅读(359) 评论(0) 推荐(0) 编辑

2011年10月12日

二分查找变体之循环有序数组找分界点

摘要: 设一个数组循环有序(循环有序满足以下条件之一) 1.数组所有元素相等 2.数组是个有序数列,这时候分界点就是第一个元素的位置 3.总能找到一个位置(也是只有唯一一个位置)从那个位置开始,左边是个递增序列,右边也是一个有序序列,切最后一个元素小于或者等于第一个元素 阅读全文

posted @ 2011-10-12 20:05 SammyLan 阅读(1062) 评论(0) 推荐(0) 编辑

二分查找变体之二维数组二分查找

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

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

2011年10月10日

二分查找变体

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

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

导航