搜索 图论 贪心 动规 ——《挑战程序设计竞赛》《数据结构》黑书二选一数论 ——《编程珠玑》 
《组合数学》开拓思维的好书 《编程之美》 还有网上的趣味数学题《编程珠玑(续)》计算几何的书还没找呢。其他的就是刷oj吧。这些书 像我这么懒的人 
到何时能读完呢? Any day now。不管是c/c++方...
                            
                            
                                分类:
其他好文   时间:
2014-06-16 11:08:26   
                                阅读次数:
151
                             
                         
                    
                        
                            
                            
                                一、问题描述 
给玩家4张牌,每张牌牌面值在1~13之间,允许其中有数值相同的牌。采用加、减、乘、除四则运算,允许中间运算存在小数,并且可以使用括号,但每张牌只能使用一次,尝试构造一种表达式,使其运算结果为24. 
如 输入:3 3 7 7 输出:(((3)/(7))+(3))*(7)二、程序实...
                            
                            
                                分类:
其他好文   时间:
2014-06-11 09:50:30   
                                阅读次数:
284
                             
                         
                    
                        
                            
                            
                                今天无聊拿起《编程之美》看了下,发现原来n&(n-1)还有很多妙用。n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子:n 
= 10100(二进制),则(n-1) = 10011 ==》n&(n-1) = 
10000可以看到原本最低位为1的那位变为0。弄明白了n&(n-1...
                            
                            
                                分类:
其他好文   时间:
2014-06-10 21:20:06   
                                阅读次数:
217
                             
                         
                    
                        
                            
                            
                                其实编程之美也有类似的题,这道题是编程珠玑第二章的题目。题目描述:给定一个字符串,将字符串循环移位K次。最简答的方法就是,通过O(n)的辅助空间,将数组循环移位,时间复杂度就是O(n)但是如果要求空间复杂度为O(1)呢?观察规律可知,对前K位反转以及后面的反转,最后对整个字符串反转就能达到O(1)的...
                            
                            
                                分类:
其他好文   时间:
2014-06-10 21:02:52   
                                阅读次数:
275
                             
                         
                    
                        
                            
                            
                                一、问题描述 平面上有n个点,如何寻找距离最远的两个点?二、解题思路 
第一步,寻找凸包(因为最远距离的两个点一定在凸包上) 第二步,用旋转卡(qia)壳 寻找距离最大的点 
凸包和旋转卡壳算法参见http://blog.csdn.net/kaytowin/article/details/514...
                            
                            
                                分类:
其他好文   时间:
2014-06-10 15:08:37   
                                阅读次数:
231
                             
                         
                    
                        
                            
                            
                                给定一个包含N个整数的数组,求数组的子数组之和的最大值。...
                            
                            
                                分类:
其他好文   时间:
2014-06-10 11:18:42   
                                阅读次数:
154
                             
                         
                    
                        
                            
                            
                                《最强大脑》有一期,中间插入娱乐,章子怡记住场上每个人的击球数和进球情况。 比如 第一个人: 
第1个球进了,第2个球没进, 第3个球进了,第4个球没进。 记为 0101-5 第二个人: 第1个球没进,第2个球没进, 第3个球进了,第4个球进了。 记为 
1100-12 ...她只需要记住 5, 12 ...
                            
                            
                                分类:
其他好文   时间:
2014-06-09 20:25:43   
                                阅读次数:
190
                             
                         
                    
                        
                            
                            
                                一、问题描述 
任意给定一个正整数N,求一个最小正整数M(M>1),使得N*M的十进制形式只含1和0。 比如 N=99,M=1 122 334 455 667 789 
,N*M=111 111 111 111 111 111; M就是当N=99时,符合条件的数二、解题思路 考虑将问题转化为:找...
                            
                            
                                分类:
其他好文   时间:
2014-06-09 15:58:12   
                                阅读次数:
236
                             
                         
                    
                        
                            
                            
                                求一个数组中的最大值和最小值,我们一般的做法是扫描一遍数组求的最大值,扫描一遍数组求最小值,这样做需要比较2N次才能求解。而实际上我们可以比较1.5N次即可得到结果。考虑如下几种方法。
    方法一:
    我们可以把数组分成两部分,首先按照顺序将数组中的相邻的两个数分在同一组,接着比较同一组中奇数位上的值和偶数位上的值,将较大的放在偶数位上,较小的放在奇数位上,这样经过0.5N次比较后,最大数肯定在偶数位上,最小的数肯定在奇数位上,而后分别扫描一遍数组的偶数位和奇数位,便可得到最大值和最小值。这样,...
                            
                            
                                分类:
其他好文   时间:
2014-06-08 14:42:42   
                                阅读次数:
212
                             
                         
                    
                        
                            
                            
                                一、问题描述 
给定一个十进制数N,写下从1开始,到N的所有整数,然后数一下之中所有“1”的个数。 例如: 
N=12,(1,2,3,4,5,6,7,8,9,10,11,12)共有5个1二、解题思想 
假设N=abcde为一个整数,a,b,c,d,e分别对应十进制数,如果要计算(1到N)百位出现1...
                            
                            
                                分类:
其他好文   时间:
2014-06-08 00:00:15   
                                阅读次数:
278