为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕村225694 2018-11-13 20:39:37
比如有[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)然后得到一个新的数组
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

把他们丢进一个set里,然后剩下的就是 n个不重复数字能组成多少个指定size的数组 问题了
也就是 (n-size+1)*(n-size)/2


额,仔细看了下,要分两步,第一步先拆分size,第二步再取数
取数还是可以套用上面的算法,拆分的算法也较好实现
大概步骤:
计算较短,较长数组长度,记为min,max
然后将min与size比较,取较小为临界值(flag)
剩下的就是从min长度数组里取flag个数,从max取size-flag个数
然后flag--
具体的逻辑判断还要更详细一点,大概思路就是这样了


查看完整回答
反对 回复 2018-11-13
  • 1 回答
  • 0 关注
  • 1305 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信