递归的代码改成非递归

发布于 2022-09-04 01:21:49 字数 638 浏览 11 评论 0

这里有一段代码,是用递归的形式完成数个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);  
            }  
        }  

    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝眼睛不忧郁 2022-09-11 01:21:49
public static void ndfs(int[] counts){
    int i=0;
    while(i<counts.length){
        System.out.println("hello");
    }
}

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

叹梦 2022-09-11 01:21:49
        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--;
            }
        }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文