算法面试题,笛卡尔积算法

前段开发小白
  • 51

源数据

[ { "颜色": "红" }, { "颜色": "黄" }, { "尺寸": "14" }, { "尺寸": "15" } ]

结果数据

[{ "颜色": "红", "尺寸": "14" }, { "颜色": "红", "尺寸": "15" }, { "颜色": "黄", "尺寸": "14" }, { "颜色": "黄", "尺寸": "15" }]
回复
阅读 1.5k
2 个回答

这是一个全组合遍历的问题,这种问题其实都可以映射到整数遍历问题(组合中不同元素种类映射到二进制数的多个位上),比如这里其实对应2个1bit的二进制位数,再由他们组合成完整的结果。
其中颜色需要1bit,尺寸需要1bit,所以可以由 00,01,10,11这些整数分别对应可能的组合情况。
当然这个问题中区分出有哪些组合元素种类还需要特殊处理(一个预处理过程。)

宣传栏