递归的代码改成非递归

这里有一段代码,是用递归的形式完成数个for循环的嵌套,麻烦大家帮忙看看如何改写成非递归的代码并且不用写成数个for循环嵌套。

public class Test {

    static int i=0;
    public static void main(String[] args) {
        int[] counts = new int[3];
        counts[0] = 1;  
        counts[1] = 2;  
        counts[2] = 3; 

        dfs(counts, 0);
        
    }
    

    public static void dfs(int[] counts,int index){  
        for(int i=0;i<counts[index];i++){  
            if(index == counts.length-1){ 
                System.out.println("hello");  
            }  
            else{  
                dfs(counts,index+1);  
            }  
        }  

    }
阅读 3k
2 个回答
public static void ndfs(int[] counts){
    int i=0;
    while(i<counts.length){
        System.out.println("hello");
    }
}

//起码现在看来效果一样啊

        public static void main(String[] args) {
            int[] counts = new int[3];
            counts[0] = 1;  
            counts[1] = 2;  
            counts[2] = 3; 
            int sum = 0;
            for(int i = 0;i < counts.length;i++){
                sum += counts[i];
            }
            while(sum > 0){
                System.out.println("hello");
                sum--;
            }
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题