javascript中的枚举算法实例介绍-创新互联

本篇内容介绍了“javascript中的枚举算法实例介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联秉承实现全网价值营销的理念,以专业定制企业官网,成都网站制作、成都网站建设、外贸营销网站建设重庆小程序开发,网页设计制作,手机网站开发,全网营销推广帮助传统企业实现“互联网+”转型升级专业定制企业官网,公司注重人才、技术和管理,汇聚了一批优秀的互联网技术人才,对客户都以感恩的心态奉献自己的专业和所长。

javascript枚举算法,题目:在1,2,3,4,5 五个数中,我们随机选取 3个数。问有多少种取法?并且把每种取出数的方法列举出来。

乍看这道题,其实感觉没什么难度。三个for循环不就解决问题了。

代码:

var arr=[1,2,3,4,5];

    for(var i=0;i<5;i++){

        for(var j=0;j<5;j++){

            for(var k=0;k<5;k++)

                if(arr[i]!=arr[j]!=arr[j]){

                    console.log(arr[i]+''+arr[j]+arr[k]);

                }

        }

    }

这样子就可以打印出来每种遍历的情况。是不是看起来很简单。但是,如果我们需要解决这一类问题的话,此解法就感觉不足了。比如说:我们在十个数取出八个数求结果,一百个数取出八十个数求出结果。那么,我们分别要循环8次和80次,那么这肯定是不行的。那么,怎么办呢?? 其实采用枚举就可以了。

代码:

var  number=[1,2,3,4,5];  //我们操作的数组

    var state=[];   //记录状态的数组

    var shu=[];    //枚举出来答案得到的数组。

    function dfs(step,n){   //n,代表取几个数出来。

        var flag=true;

            if(step==n){  //判断条件,判断是否取出来了个数。

                    console.log(state.join(""));

                    shu.push(state.join(""));  //把取出来的书方法数组中

                    return 0; //结束循环

            }

            for(var i=0;i<number.length;i++){ //循环数据

                    for(var j=0;j<state.length;j++){  //判断时候取出来重复的数。

                        if(state[j]==number[i]){

                            flag=false;

                            break;

                        }

                    }

                    if(flag){

                            state.push(number[i]);  //保存当前环境

                            dfs(step+1,n);

                            state.pop(number[i]);  //回退到上一层的环境

                    }

                    flag=true;

                }

        }

        dfs(0,4);

        console.log(shu.length);

其实最重要的代码就是上面

if(flag){

state.push(number[i]);  //保存当前环境

dfs(step+1,n);

state.pop(number[i]);  //回退到上一层的环境

}

“javascript中的枚举算法实例介绍”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联-成都网站建设公司网站,小编将为大家输出更多高质量的实用文章!

网站标题:javascript中的枚举算法实例介绍-创新互联
文章网址:https://www.cdcxhl.com/article14/dpojge.html

成都网站建设公司_创新互联,为您提供关键词优化软件开发域名注册做网站云服务器搜索引擎优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都app开发公司