java常见的一道递归笔试题

列出数组中元素组合的所有情况

比如:[1, 2, 3] --> 123, 132, 213, 231, 312, 321

代码实现:

public class TestQuestion {
    
    public static void getAll(List<Integer> list, String prefix) {
        
        for (int i  = 0; i < list.size(); i++) {
            List tem = new ArrayList();
            tem.addAll(list);
            
            String res = prefix + tem.get(i);
            tem.remove(i);
            
            if (tem.size() > 0) {
                getAll(tem, res);
            } else {
                System.out.println(res);
            }
        }
    }
    
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        //list.add(4);
        getAll(list, "哈");
    }
}
 结果:
              哈123  
              哈132
              哈213
              哈231
              哈312
              哈321
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。