排列组合,从M个数中取N个数的组合情况
思路
初始化一个长度为m字符串,其中前n个字符为1. (为1表示这个坐标为占用)
如果字符串存在 "10"的字符,则进行翻转(翻转第一个"10"出现),变"01"成,翻转后将当前位置("10”的位置索引)左边所有的1,移动到最左边。比如: 011100,翻转后变成011010,然后进行左移,变成110010。
一直翻转和左移,直到所有的1都到了右边,也就是没有"10"的字符存在
例如: [1,2,3,4,5], 取3个组合
初始化 1 1 1 0 0
第1次翻转 1 1 0 1 0
第2次翻转
原创
2022-05-08 22:47:57 ·
872 阅读 ·
0 评论