共 42 篇文章 |
|
换种思维,对122,第一个数1与第二个数2交换得到212,然后考虑第一个数1与第三个数2交换,此时由于第三个数等于第二个数,所以第一个数不再与第三个数交换。 阅63 转2 评0 公众公开 13-09-30 17:24 |
算法题24 根据上排给出十个数,在其下排填出对应的十个数。给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数。其在b中出现的次数一定为0. 如果a中数值大于n,则其出现次数也为0.又如果1出现的次数为1,则1出现的次数已经为2,故1出现的次数必大于1.设为x,则x出现的次数至少... 阅376 转1 评0 公众公开 13-09-25 16:13 |
桶排序。以及不常见的鸡尾酒排序、奇偶排序、梳排序、Gnome sort 。但是,箱排序和基数排序只适用于像字符串和整数这类有明显结构特征的关键字,而当关键字的取值范围属于某个无穷集合(例如实数型关键字)时,无法使用箱排序和基数排序,这时只有借助于"比较"的方法来排序。4 Shell排序(ShellSort)Shell排序通过将数据分成不同的组... 阅9431 转118 评0 公众公开 13-09-21 16:33 |
C语言中位运算的巧用。集合的并 A|B 集合的交 A&B 集合的差 A& ~B 补集 ALL_BITS^A 添加特定元素bit A|=1<<bit 清除特定元素bit A^=1<<bit 取出特定元素bit A&=1<<bit 判断是否存在特定元素bit (A&1<<bit)!=0三、基本技术。这里列举一些常用的位运算技术。而令人高兴的是—... 阅3082 转16 评0 公众公开 13-09-20 16:53 |
阅455 转1 评0 公众公开 13-09-20 13:24 |
public static int getMiddle(int[]a,int[]b,int astart,int aend,int bstart,int bend){ int amid=(aend+astart)/2;}else if(astart==aend&&bstart==bend){ System.out.println(a[astart]<b[bstart]?} else if(a[amid]<b[bmid]) { if((aend-astart+1)%2==0) return getMiddle(a,b,amid+1,aend,bs... 阅135 转1 评0 公众公开 13-09-20 10:09 |
阅281 转2 评0 公众公开 13-09-03 09:01 |
剑指Offer解法:当n=1时,F(n,m)=0;当n>1时,F(n,m)=[F(n-1,m)+m]%n.于是上述公式转为代码int LastNumber(int n,int m){ if(n<1||m<1)return -1; int last=0; for(int i=2;i<=n;i++) { last=(last+m)%i; } return last;}递归解法int LastNumber(int n ,int m){ if(n==1)return 0;else return LastNumber(n-1,m)%... 阅65 转1 评0 公众公开 13-09-02 23:06 |
找出一组数字钟不重复出现的两个数字(按位分组)按位将树进行分组,1位分为2组(0 1),2位分为四组(00 01 10 11),依次类推下去。例如(1 2 3 3 7 7 5 5 8 8)求出1和2根据总体异或的值得某一位为1,把原数组分为两组,于是每个子数组都将有一个只出现一次的数字,并且每个重复的数字都在同一个子数组中,然后对子数组进行异或即可得到该子... 阅319 转1 评0 公众公开 13-09-02 21:02 |