猿问

请教个算法题,从几组数组中每组取一个数字,组成新的数组,有多少种组合?

比如有[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)然后得到一个新的数组

慕村225694
浏览 1306回答 1
1回答

小怪兽爱吃肉

把他们丢进一个set里,然后剩下的就是 n个不重复数字能组成多少个指定size的数组 问题了也就是 (n-size+1)*(n-size)/2额,仔细看了下,要分两步,第一步先拆分size,第二步再取数取数还是可以套用上面的算法,拆分的算法也较好实现大概步骤:计算较短,较长数组长度,记为min,max然后将min与size比较,取较小为临界值(flag)剩下的就是从min长度数组里取flag个数,从max取size-flag个数然后flag--具体的逻辑判断还要更详细一点,大概思路就是这样了
随时随地看视频慕课网APP

相关分类

Python
我要回答