排列组合问题

作者: 打铁大师 | 来源:发表于2017-08-18 15:43 被阅读0次

题目

给出一个二维数组,得到所有想要结果的二维数组。
比如:

let arr = [ 
  ['red','yellow'],
  ['s','m']
];

希望得到的结果

[
 ['red','s'],
 ['red','m'],
 ['yellow','s'],
 ['yellow','m']
] 

再比如:

   let arr = [ 
      ['red','yellow'],
      ['s','m'],
      ['a','b','c']
];

希望得到的结果:

 [ 
      ['red','s','a'],
      ['red','s','b'],
      ['red','s','c'],
      ['red','m','a'],
      ['red','m','b'],
      ['red','m','c'],
      ['yellow','s','a'],
      ['yellow','s','b'],
      ['yellow','s','c'],
      ['yellow','m','a'],
      ['yellow','m','b'],
      ['yellow','m','c'],
];

我的算法:

let arr =[
    ['红色','绿色','黄色','绿色'],
    ["大",'小','超大'],
    ['100m','150m']
];

function getResult(array){
    let result = [[]];
    for(let i=0;i<array.length;i++){
        result=twoDimensional(result,array[i]);
    }
    return result;
}

function twoDimensional(a,b){
    let result = [];
    let copy;
    for(let i=0;i<a.length;i++){
        for(let j=0;j<b.length;j++){
            copy=a[i].concat();
            copy.push(b[j]);
            result.push(copy);
        }
    }
    return result;
}
getResult(arr);

结果:

    [ [ '红色', '大', '100m' ],
  [ '红色', '大', '150m' ],
  [ '红色', '小', '100m' ],
  [ '红色', '小', '150m' ],
  [ '红色', '超大', '100m' ],
  [ '红色', '超大', '150m' ],
  [ '绿色', '大', '100m' ],
  [ '绿色', '大', '150m' ],
  [ '绿色', '小', '100m' ],
  [ '绿色', '小', '150m' ],
  [ '绿色', '超大', '100m' ],
  [ '绿色', '超大', '150m' ],
  [ '黄色', '大', '100m' ],
  [ '黄色', '大', '150m' ],
  [ '黄色', '小', '100m' ],
  [ '黄色', '小', '150m' ],
  [ '黄色', '超大', '100m' ],
  [ '黄色', '超大', '150m' ],
  [ '绿色', '大', '100m' ],
  [ '绿色', '大', '150m' ],
  [ '绿色', '小', '100m' ],
  [ '绿色', '小', '150m' ],
  [ '绿色', '超大', '100m' ],
  [ '绿色', '超大', '150m' ] ]

相关文章

  • 排列组合问题

    排列组合问题 今天同事问了我一个问题,给定随机几个数字(不重复),列出其所有排列组合可能.这个问题看似很简单,毕竟...

  • 排列组合问题

    题目 给出一个二维数组,得到所有想要结果的二维数组。比如: 希望得到的结果 再比如: 希望得到的结果: 我的算法:...

  • 排列组合问题

    为什么要写这篇文章 排列组合问题在数学中占有重要的地位,其与概率论也有密切的关系。而且排列组合问题大量出现在求职笔...

  • 排列组合问题

    4个不同小球放进不同盒子有多少种放法。4的4次256 4个相同小球放进不同盒子有多少种放法。35 4个不同小球放进...

  • 第7节:行程、排列组合问题

    1、行程问题 2、排列组合 排列 组合 分类问题,加法 分步问题,乘法

  • LeetCode之Count Sorted Vowel Stri

    问题: 方法:两种解法,一种是DP如下方代码所示;另外一种是排列组合,推导出排列组合公式。 有问题随时沟通 具体代...

  • PHP 排列组合问题

    如$arr=[2,3,4]; 那么它的结果就应该是[2,23,234,24,3,34,4]七种结果 有什么好的方法得到吗

  • MATLAB 排列组合问题

    毕设ing, 最近每天除了看论文就是matlab仿真。 MATLAB编程强调"vectorization'',对矩...

  • 2019-03-13

    言语表达 数学运算 计算问题、行程问题、工程问题、几何问题、排列组合、概率问题、容斥问题、 利润问题、极值问题、浓...

  • Python实现字符串排序(包含了排列组合问题)

    用递归的方式解决排列组合问题 def zuhe(ss,res,path): if ss == '': ...

网友评论

    本文标题:排列组合问题

    本文链接:https://www.haomeiwen.com/subject/vmsarxtx.html