今天又见有人问所有排列方式的问题,便随手写了个:

    static IEnumerable<IEnumerable<int>> GetAllSequence(int n)

    {

        if (n == 1)

        {

            return Enumerable.Range(0, 1).Select(_ => new int[] { 1 });

        }

        else

        {

            var num = Enumerable.Range(n, 1);

 

            return from seq in GetAllSequence(n - 1)

                    from count in Enumerable.Range(0, n)

                    select seq.Take(count).Concat(num).Concat(seq.Skip(count));

        }

    }

 

记得以前也写过过关于这个算法,搜了一下,是篇08年的老文章——一道关于排列组合的算法题。看了一下,虽然方法基本上是一样的,以前的代码写得比较青涩。看来这几年编程水平还是有点提高的。^_^

 

 

相关文章:

  • 2021-12-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-22
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2023-04-10
  • 2022-03-02
  • 2021-12-22
  • 2022-12-23
  • 2021-10-25
相关资源
相似解决方案