前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一道关于组合的js算法题目

一道关于组合的js算法题目

作者头像
挥刀北上
发布2019-07-19 15:11:58
6680
发布2019-07-19 15:11:58
举报
文章被收录于专栏:Node.js开发

题图 From 花瓣网 By Clm

前不久在网上看到这样一道面试题目,题面是这样的:

有一个数组,如果有3个值:[3,2,6]。交叉组合后返回:3-2,3-6,2-6,3-2-6

如果这个数组有4个值:[3,2,6,9]。交叉组合后返回:3-2,3-6,3-9,2-6,2-9,6-9,3-2-6,3-2-9,2-6-9,3-2-6-9。

如果是5个值,6个值以此类推,结果如何,如何用JavaScript实现这个功能呢?

原题目要求是用java来实现,这里我给换成了javascript,语言其实无关紧要,就像leetcode的题目,主要是看思维方式。

代码如下:

大体的思路是:

1、大循环套小循环,大循环根据数组的程度进行循环,每循环一次,将数组的第一项剔除。

2、小循环中定义了一个局部变量index,这里的思路是,每次循环将数组分为固定前缀和剩余变化值,然后将剩余变化值和前缀进行拼接,塞入result中。

代码流程图如下:

其实这个题目还有很多变式,比如将需求改为,从数组中随机选择两个值能有多少种组合,随机选择三个呢?

大家可以思考一下,这些小的思考对编程思维的形成很有帮助,笔者也是很乐于写写这方面的文章,大家有什么好的题目可以分享出来,欢迎大家留言。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 nodejs全栈开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档