算法
文章平均质量分 62
AstrayLinux
菜鸟,菜鸟!
展开
-
将m个相同的球全部放到n个相同的盒子里面有几种放法,盒子不能为空
将m个相同的球全部放到n个相同的盒子里面有几种放法,盒子不能为空,m>=n盒子不能为空,所以可以当成将m-n个球放到n个盒子里,盒子可以为空。比如将10个球放到5个盒子里,可以当成5个球放到5个盒子里,盒子能为空。接着,再分情况,将球分为(5,0,0,0,0)(4,1,0,0,0)或(2,3,0,0,0)(3,1,1,0,0)或(2,2,1,0,0)(2,1,1,1,0)原创 2012-03-31 16:58:23 · 13177 阅读 · 0 评论 -
两个指针(位置)的妙用
使用两个指针可以轻松的解决许多算法问题,归纳出如下几种1、 判断链表是否带环带环链表的判断是链表中经常考察的内容。一个循环链表可以无休止地遍历下去。我们可以定义两个指针,一个快指针一个慢指针,如果在遍历到尾端前二者相遇,那么链表就是有环链表[cpp] view plaincopybool haveCycle(LinkList * Head) { i转载 2012-04-01 12:36:06 · 899 阅读 · 0 评论 -
任何一个正整数都可以用2的幂次方表示,转化
任何一个正整数都可以用2的幂次方表示.例如:137=2^7+2^3+2^0同时约定次方用括号来表示,即a^b可表示为a(b)由此可知,137可表示为:2(7)+2(3)+2(0)进一步:7=2^2+2+2^0 (2^1用2表示)3=2+2^0所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)又如:1315=2^10+2^8+2^5+2+1原创 2012-10-27 12:04:32 · 10853 阅读 · 0 评论