Skip to content

[js] 第491天 写一个方法,计算有N个数(可重复),分别放到M个位置中,有多少种排列? #2796

Open
@haizhilin2013

Description

@haizhilin2013
Collaborator

第491天 写一个方法,计算有N个数(可重复),分别放到M个位置中,有多少种排列?

3+1官网

我也要出题

Activity

longhui520

longhui520 commented on Aug 20, 2020

@longhui520
var combine = function(arr, k) {
    var result = {};
    var subresult = [];
    var n = arr.length
    var count = 0
    function combineSub(subresult){
        if(subresult.length == k){
            var subres = subresult.slice(0)
            var sub = []
            subres.forEach(item=>sub.push(arr[item]))
            var res = sub.join()
            if(result[res] == undefined){
                result[res] = sub
                count++
            }
            return;
        }
        for(var i= 0;i<n;i++){
           if(subresult.indexOf(i) ===-1){
              subresult.push(i);
              combineSub(subresult);
              subresult.pop();     
           }           
        }   
    }
    combineSub(subresult);
    return count;
}
combine([1,2,2],1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    jsJavaScript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @haizhilin2013@longhui520

        Issue actions

          [js] 第491天 写一个方法,计算有N个数(可重复),分别放到M个位置中,有多少种排列? · Issue #2796 · haizlin/fe-interview