现在的位置: 首页 > 综合 > 正文

从数组中返回所有指定长度的子数组的另一种方法

2012年04月23日 ⁄ 综合 ⁄ 共 351字 ⁄ 字号 评论关闭
前几天用递归的方法实现了——从数组中返回所有指定长度的子数组。
 
后来在看《编程之美》中的一篇文章——《求二进制数中1的个数》时想到另一种比较好的方法,就是用二进制数来实现。比如要从{1,2,3,4,5}中提取所有长度为2的数组(不考虑顺序),可以先用排列的知识算出子数组有多少个,比如这题C25=10个,然后再访问所有从0到9之间的数,当然是用二进制的形式来访问,如果这个二进制数中1的个数为2,那么就在原数组中按照这两个1的位置来取值,从来可以得到一个子数组。那么在遍历所有0到9之间的二进制数后,就可以得到所以满足条件的子数组。
 
这个方法实现起来比较简单,就不给出代码了。

抱歉!评论已关闭.