请教个算法题,从几组数组中每组取一个数字,组成新的数组,有多少种组合?
比如有[1,2]和[1,3,4]两组数组,每组取一个数字,根据size,组成新的数组。
如size为2,则结果为[[1,1],[1,3],[1,4],[2,1],[2,3],[2,4],[3,1],[4,1],[2,1],[3,2],[4,2]];
如果size为3,则结果为[[1,1,3],[1,1,4],[1,3,4]...以此类推]
大概就是一个函数 fun(arr1,arr2,size)然后得到一个新的数组
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
把他们丢进一个set里,然后剩下的就是 n个不重复数字能组成多少个指定size的数组 问题了
也就是 (n-size+1)*(n-size)/2
额,仔细看了下,要分两步,第一步先拆分size,第二步再取数
取数还是可以套用上面的算法,拆分的算法也较好实现
大概步骤:
计算较短,较长数组长度,记为min,max
然后将min与size比较,取较小为临界值(flag)
剩下的就是从min长度数组里取flag个数,从max取size-flag个数
然后flag--
具体的逻辑判断还要更详细一点,大概思路就是这样了
python3