N个元素的集合中,任选M个元素所构成的排列P(M in N)、组合C(M in N)

题1:0、1、2、3、4、5、6、7、8、9十个数字中,求所有非0开头的6个不重复数字的排列。

法1:很邪恶很强大的循环

 1面试题解(4):求排列、组合//M in N, M重循环求所有排列
 2面试题解(4):求排列、组合void GetSixNumberSerial1()
 3}



法2:很邪恶很强大的递归

 1面试题解(4):求排列、组合//M in N, 递归求所有排列
 2面试题解(4):求排列、组合void GetSixNumberSerial2()
 3}




题2:0、1、2、3、4、5、6、7、8、9十个数字中,求所有6个不重复数字的组合:

 1面试题解(4):求排列、组合void GetSixNumberCombination()
 2}

 


补充问题:
1. 上面问题2的解法中,使用了unsigned int来进行位操作,但在求C(N,M)时,如果N>32,该怎么办呢?(考虑自己实现BitArray)
2. 一个给定的集合有100万个元素,其中每个元素又是由1~1000万之间的100万个不重复数字组成的集合,如果对这些集合进行和并操作,求最少有哪些集合能构成1..1000W这个全集?(06年底,同学的一道baidu面试题,大致意思是这样的)


相关文章:

  • 2022-12-23
  • 2021-09-16
  • 2021-07-07
  • 2021-05-08
  • 2021-07-10
猜你喜欢
  • 2022-12-23
  • 2021-11-12
  • 2021-06-12
  • 2021-11-12
  • 2022-12-23
  • 2022-02-22
  • 2022-12-23
相关资源
相似解决方案